mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/
synced 2026-04-17 22:23:45 -04:00
In most cases, the use of "fast 32-bit system call" depends either on X86_FEATURE_SEP or X86_FEATURE_SYSENTER32 || X86_FEATURE_SYSCALL32. However, nearly all the logic for both is identical. Define X86_FEATURE_SYSFAST32 which indicates that *either* SYSENTER32 or SYSCALL32 should be used, for either 32- or 64-bit kernels. This defaults to SYSENTER; use SYSCALL if the SYSCALL32 bit is also set. As this removes ALL existing uses of X86_FEATURE_SYSENTER32, which is a kernel-only synthetic feature bit, simply remove it and replace it with X86_FEATURE_SYSFAST32. This leaves an unused alternative for a true 32-bit kernel, but that should really not matter in any way. The clearing of X86_FEATURE_SYSCALL32 can be removed once the patches for automatically clearing disabled features has been merged. Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com> Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com> Link: https://patch.msgid.link/20251216212606.1325678-10-hpa@zytor.com
210 lines
5.0 KiB
Plaintext
210 lines
5.0 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# x86 feature bits (see arch/x86/include/asm/cpufeatures.h) that are
|
|
# either REQUIRED to be enabled, or DISABLED (always ignored) for this
|
|
# particular compile-time configuration. The tests for these features
|
|
# are turned into compile-time constants via the generated
|
|
# <asm/cpufeaturemasks.h>.
|
|
#
|
|
# The naming of these variables *must* match asm/cpufeatures.h, e.g.,
|
|
# X86_FEATURE_ALWAYS <==> X86_REQUIRED_FEATURE_ALWAYS
|
|
# X86_FEATURE_FRED <==> X86_DISABLED_FEATURE_FRED
|
|
#
|
|
# And these REQUIRED and DISABLED config options are manipulated in an
|
|
# AWK script as the following example:
|
|
#
|
|
# +----------------------+
|
|
# | X86_FRED = y ? |
|
|
# +----------------------+
|
|
# / \
|
|
# Y / \ N
|
|
# +-------------------------------------+ +-------------------------------+
|
|
# | X86_DISABLED_FEATURE_FRED undefined | | X86_DISABLED_FEATURE_FRED = y |
|
|
# +-------------------------------------+ +-------------------------------+
|
|
# |
|
|
# |
|
|
# +-------------------------------------------+ |
|
|
# | X86_FEATURE_FRED: feature word 12, bit 17 | ---->|
|
|
# +-------------------------------------------+ |
|
|
# |
|
|
# |
|
|
# +-------------------------------+
|
|
# | set bit 17 of DISABLED_MASK12 |
|
|
# +-------------------------------+
|
|
#
|
|
|
|
config X86_REQUIRED_FEATURE_ALWAYS
|
|
def_bool y
|
|
|
|
config X86_REQUIRED_FEATURE_NOPL
|
|
def_bool y
|
|
depends on X86_64 || X86_P6_NOP
|
|
|
|
config X86_REQUIRED_FEATURE_CX8
|
|
def_bool y
|
|
depends on X86_CX8
|
|
|
|
# this should be set for all -march=.. options where the compiler
|
|
# generates cmov.
|
|
config X86_REQUIRED_FEATURE_CMOV
|
|
def_bool y
|
|
depends on X86_CMOV
|
|
|
|
# this should be set for all -march= options where the compiler
|
|
# generates movbe.
|
|
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
|
|
|
|
config X86_REQUIRED_FEATURE_UP
|
|
def_bool y
|
|
depends on !SMP
|
|
|
|
config X86_REQUIRED_FEATURE_FPU
|
|
def_bool y
|
|
depends on !MATH_EMULATION
|
|
|
|
config X86_REQUIRED_FEATURE_PAE
|
|
def_bool y
|
|
depends on X86_64 || X86_PAE
|
|
|
|
config X86_REQUIRED_FEATURE_PSE
|
|
def_bool y
|
|
depends on X86_64 && !PARAVIRT_XXL
|
|
|
|
config X86_REQUIRED_FEATURE_PGE
|
|
def_bool y
|
|
depends on X86_64 && !PARAVIRT_XXL
|
|
|
|
config X86_REQUIRED_FEATURE_MSR
|
|
def_bool y
|
|
depends on X86_64
|
|
|
|
config X86_REQUIRED_FEATURE_FXSR
|
|
def_bool y
|
|
depends on X86_64
|
|
|
|
config X86_REQUIRED_FEATURE_XMM
|
|
def_bool y
|
|
depends on X86_64
|
|
|
|
config X86_REQUIRED_FEATURE_XMM2
|
|
def_bool y
|
|
depends on X86_64
|
|
|
|
config X86_REQUIRED_FEATURE_LM
|
|
def_bool y
|
|
depends on X86_64
|
|
|
|
config X86_DISABLED_FEATURE_UMIP
|
|
def_bool y
|
|
depends on !X86_UMIP
|
|
|
|
config X86_DISABLED_FEATURE_VME
|
|
def_bool y
|
|
depends on X86_64
|
|
|
|
config X86_DISABLED_FEATURE_K6_MTRR
|
|
def_bool y
|
|
depends on X86_64
|
|
|
|
config X86_DISABLED_FEATURE_CYRIX_ARR
|
|
def_bool y
|
|
depends on X86_64
|
|
|
|
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
|
|
|
|
config X86_DISABLED_FEATURE_LASS
|
|
def_bool y
|
|
depends on X86_32
|
|
|
|
config X86_DISABLED_FEATURE_PKU
|
|
def_bool y
|
|
depends on !X86_INTEL_MEMORY_PROTECTION_KEYS
|
|
|
|
config X86_DISABLED_FEATURE_OSPKE
|
|
def_bool y
|
|
depends on !X86_INTEL_MEMORY_PROTECTION_KEYS
|
|
|
|
config X86_DISABLED_FEATURE_PTI
|
|
def_bool y
|
|
depends on !MITIGATION_PAGE_TABLE_ISOLATION
|
|
|
|
config X86_DISABLED_FEATURE_RETPOLINE
|
|
def_bool y
|
|
depends on !MITIGATION_RETPOLINE
|
|
|
|
config X86_DISABLED_FEATURE_RETPOLINE_LFENCE
|
|
def_bool y
|
|
depends on !MITIGATION_RETPOLINE
|
|
|
|
config X86_DISABLED_FEATURE_RETHUNK
|
|
def_bool y
|
|
depends on !MITIGATION_RETHUNK
|
|
|
|
config X86_DISABLED_FEATURE_UNRET
|
|
def_bool y
|
|
depends on !MITIGATION_UNRET_ENTRY
|
|
|
|
config X86_DISABLED_FEATURE_CALL_DEPTH
|
|
def_bool y
|
|
depends on !MITIGATION_CALL_DEPTH_TRACKING
|
|
|
|
config X86_DISABLED_FEATURE_LAM
|
|
def_bool y
|
|
depends on !ADDRESS_MASKING
|
|
|
|
config X86_DISABLED_FEATURE_ENQCMD
|
|
def_bool y
|
|
depends on !INTEL_IOMMU_SVM
|
|
|
|
config X86_DISABLED_FEATURE_SGX
|
|
def_bool y
|
|
depends on !X86_SGX
|
|
|
|
config X86_DISABLED_FEATURE_XENPV
|
|
def_bool y
|
|
depends on !XEN_PV
|
|
|
|
config X86_DISABLED_FEATURE_TDX_GUEST
|
|
def_bool y
|
|
depends on !INTEL_TDX_GUEST
|
|
|
|
config X86_DISABLED_FEATURE_USER_SHSTK
|
|
def_bool y
|
|
depends on !X86_USER_SHADOW_STACK
|
|
|
|
config X86_DISABLED_FEATURE_IBT
|
|
def_bool y
|
|
depends on !X86_KERNEL_IBT
|
|
|
|
config X86_DISABLED_FEATURE_FRED
|
|
def_bool y
|
|
depends on !X86_FRED
|
|
|
|
config X86_DISABLED_FEATURE_SEV_SNP
|
|
def_bool y
|
|
depends on !KVM_AMD_SEV
|
|
|
|
config X86_DISABLED_FEATURE_INVLPGB
|
|
def_bool y
|
|
depends on !BROADCAST_TLB_FLUSH
|