2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-26 06:04:14 +08:00
linux-next/arch/x86/entry
H.J. Lu 4caffe6a28 x86/vdso: Discard .note.gnu.property sections in vDSO
With the command-line option -mx86-used-note=yes which can also be
enabled at binutils build time with:

  --enable-x86-used-note  generate GNU x86 used ISA and feature properties

the x86 assembler in binutils 2.32 and above generates a program property
note in a note section, .note.gnu.property, to encode used x86 ISAs and
features.  But kernel linker script only contains a single NOTE segment:

  PHDRS
  {
   text PT_LOAD FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */
   dynamic PT_DYNAMIC FLAGS(4); /* PF_R */
   note PT_NOTE FLAGS(4); /* PF_R */
   eh_frame_hdr 0x6474e550;
  }

The NOTE segment generated by the vDSO linker script is aligned to 4 bytes.
But the .note.gnu.property section must be aligned to 8 bytes on x86-64:

  [hjl@gnu-skx-1 vdso]$ readelf -n vdso64.so

  Displaying notes found in: .note
    Owner                Data size 	Description
    Linux                0x00000004	Unknown note type: (0x00000000)
     description data: 06 00 00 00
  readelf: Warning: note with invalid namesz and/or descsz found at offset 0x20
  readelf: Warning:  type: 0x78, namesize: 0x00000100, descsize: 0x756e694c, alignment: 8

Since the note.gnu.property section in the vDSO is not checked by the
dynamic linker, discard the .note.gnu.property sections in the vDSO.

 [ bp: Massage. ]

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lkml.kernel.org/r/20200326174314.254662-1-hjl.tools@gmail.com
2020-03-27 15:53:05 +01:00
..
syscalls threads-v5.6 2020-01-29 19:38:34 -08:00
vdso x86/vdso: Discard .note.gnu.property sections in vDSO 2020-03-27 15:53:05 +01:00
vsyscall y2038: syscall implementation cleanups 2019-12-01 14:00:59 -08:00
calling.h context_tracking: Rename context_tracking_is_enabled() => context_tracking_enabled() 2019-10-29 10:01:12 +01:00
common.c x86/ioperm: Move TSS bitmap update to exit to user work 2019-11-16 11:24:03 +01:00
entry_32.S x86/entry/32: Remove unused 'restore_all_notrace' local label 2019-11-27 10:38:16 +01:00
entry_64_compat.S x86/asm: Change all ENTRY+ENDPROC to SYM_FUNC_* 2019-10-18 11:58:33 +02:00
entry_64.S x86/entry/64: Add instruction suffix to SYSRET 2020-01-09 12:33:43 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
syscall_32.c syscalls/x86: Use the correct function type for sys_ni_syscall 2019-10-11 12:49:18 +02:00
syscall_64.c syscalls/x86: Use the correct function type for sys_ni_syscall 2019-10-11 12:49:18 +02:00
thunk_32.S x86/asm/entry: Annotate THUNKs 2019-10-18 09:58:59 +02:00
thunk_64.S x86/asm/entry: Annotate THUNKs 2019-10-18 09:58:59 +02:00