Commit 6f7e6393 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'x86_entry_for_7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 entry code updates from Dave Hansen:
 "This is entirely composed of a set of long overdue VDSO cleanups. They
  makes the VDSO build much more logical and zap quite a bit of old
  cruft.

  It also results in a coveted net-code-removal diffstat"

* tag 'x86_entry_for_7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/entry/vdso: Add vdso2c to .gitignore
  x86/entry/vdso32: Omit '.cfi_offset eflags' for LLVM < 16
  MAINTAINERS: Adjust vdso file entry in INTEL SGX
  x86/entry/vdso/selftest: Update location of vgetrandom-chacha.S
  x86/entry/vdso: Fix filtering of vdso compiler flags
  x86/entry/vdso: Update the object paths for "make vdso_install"
  x86/entry/vdso32: When using int $0x80, use it directly
  x86/cpufeature: Replace X86_FEATURE_SYSENTER32 with X86_FEATURE_SYSFAST32
  x86/vdso: Abstract out vdso system call internals
  x86/entry/vdso: Include GNU_PROPERTY and GNU_STACK PHDRs
  x86/entry/vdso32: Remove open-coded DWARF in sigreturn.S
  x86/entry/vdso32: Remove SYSCALL_ENTER_KERNEL macro in sigreturn.S
  x86/entry/vdso32: Don't rely on int80_landing_pad for adjusting ip
  x86/entry/vdso: Refactor the vdso build
  x86/entry/vdso: Move vdso2c to arch/x86/tools
  x86/entry/vdso: Rename vdso_image_* to vdso*_image
parents ca8f421e ce9b1c10
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -13032,7 +13032,7 @@ S: Supported
Q:	https://patchwork.kernel.org/project/intel-sgx/list/
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/sgx
F:	Documentation/arch/x86/sgx.rst
F:	arch/x86/entry/vdso/vsgx.S
F:	arch/x86/entry/vdso/vdso64/vsgx.S
F:	arch/x86/include/asm/sgx.h
F:	arch/x86/include/uapi/asm/sgx.h
F:	arch/x86/kernel/cpu/sgx/*
+8 −0
Original line number Diff line number Diff line
@@ -56,6 +56,10 @@ config X86_REQUIRED_FEATURE_MOVBE
	def_bool y
	depends on MATOM

config X86_REQUIRED_FEATURE_SYSFAST32
	def_bool y
	depends on X86_64 && !X86_FRED

config X86_REQUIRED_FEATURE_CPUID
	def_bool y
	depends on X86_64
@@ -120,6 +124,10 @@ config X86_DISABLED_FEATURE_CENTAUR_MCR
	def_bool y
	depends on X86_64

config X86_DISABLED_FEATURE_SYSCALL32
	def_bool y
	depends on !X86_64

config X86_DISABLED_FEATURE_PCID
	def_bool y
	depends on !X86_64
+4 −4
Original line number Diff line number Diff line
@@ -252,7 +252,7 @@ endif


archscripts: scripts_basic
	$(Q)$(MAKE) $(build)=arch/x86/tools relocs
	$(Q)$(MAKE) $(build)=arch/x86/tools relocs vdso2c

###
# Syscall table generation
@@ -318,9 +318,9 @@ PHONY += install
install:
	$(call cmd,install)

vdso-install-$(CONFIG_X86_64)		+= arch/x86/entry/vdso/vdso64.so.dbg
vdso-install-$(CONFIG_X86_X32_ABI)	+= arch/x86/entry/vdso/vdsox32.so.dbg
vdso-install-$(CONFIG_COMPAT_32)	+= arch/x86/entry/vdso/vdso32.so.dbg
vdso-install-$(CONFIG_X86_64)	   += arch/x86/entry/vdso/vdso64/vdso64.so.dbg
vdso-install-$(CONFIG_X86_X32_ABI) += arch/x86/entry/vdso/vdso64/vdsox32.so.dbg
vdso-install-$(CONFIG_COMPAT_32)   += arch/x86/entry/vdso/vdso32/vdso32.so.dbg

archprepare: checkbin
checkbin:
+1 −1
Original line number Diff line number Diff line
@@ -319,7 +319,7 @@ __visible noinstr bool do_fast_syscall_32(struct pt_regs *regs)
	 * convention.  Adjust regs so it looks like we entered using int80.
	 */
	unsigned long landing_pad = (unsigned long)current->mm->context.vdso +
					vdso_image_32.sym_int80_landing_pad;
					vdso32_image.sym_int80_landing_pad;

	/*
	 * SYSENTER loses EIP, and even SYSCALL32 needs us to skip forward
+4 −7
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
vdso.lds
vdsox32.lds
vdso32-syscall-syms.lds
vdso32-sysenter-syms.lds
vdso32-int80-syms.lds
vdso-image-*.c
vdso2c
*.lds
*.so
*.so.dbg
vdso*-image.c
Loading