0001 #ifndef _ASM_X86_DISABLED_FEATURES_H
0002 #define _ASM_X86_DISABLED_FEATURES_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifdef CONFIG_X86_UMIP
0014 # define DISABLE_UMIP 0
0015 #else
0016 # define DISABLE_UMIP (1<<(X86_FEATURE_UMIP & 31))
0017 #endif
0018
0019 #ifdef CONFIG_X86_64
0020 # define DISABLE_VME (1<<(X86_FEATURE_VME & 31))
0021 # define DISABLE_K6_MTRR (1<<(X86_FEATURE_K6_MTRR & 31))
0022 # define DISABLE_CYRIX_ARR (1<<(X86_FEATURE_CYRIX_ARR & 31))
0023 # define DISABLE_CENTAUR_MCR (1<<(X86_FEATURE_CENTAUR_MCR & 31))
0024 # define DISABLE_PCID 0
0025 #else
0026 # define DISABLE_VME 0
0027 # define DISABLE_K6_MTRR 0
0028 # define DISABLE_CYRIX_ARR 0
0029 # define DISABLE_CENTAUR_MCR 0
0030 # define DISABLE_PCID (1<<(X86_FEATURE_PCID & 31))
0031 #endif
0032
0033 #ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
0034 # define DISABLE_PKU 0
0035 # define DISABLE_OSPKE 0
0036 #else
0037 # define DISABLE_PKU (1<<(X86_FEATURE_PKU & 31))
0038 # define DISABLE_OSPKE (1<<(X86_FEATURE_OSPKE & 31))
0039 #endif
0040
0041 #ifdef CONFIG_X86_5LEVEL
0042 # define DISABLE_LA57 0
0043 #else
0044 # define DISABLE_LA57 (1<<(X86_FEATURE_LA57 & 31))
0045 #endif
0046
0047 #ifdef CONFIG_PAGE_TABLE_ISOLATION
0048 # define DISABLE_PTI 0
0049 #else
0050 # define DISABLE_PTI (1 << (X86_FEATURE_PTI & 31))
0051 #endif
0052
0053 #ifdef CONFIG_RETPOLINE
0054 # define DISABLE_RETPOLINE 0
0055 #else
0056 # define DISABLE_RETPOLINE ((1 << (X86_FEATURE_RETPOLINE & 31)) | \
0057 (1 << (X86_FEATURE_RETPOLINE_LFENCE & 31)))
0058 #endif
0059
0060 #ifdef CONFIG_RETHUNK
0061 # define DISABLE_RETHUNK 0
0062 #else
0063 # define DISABLE_RETHUNK (1 << (X86_FEATURE_RETHUNK & 31))
0064 #endif
0065
0066 #ifdef CONFIG_CPU_UNRET_ENTRY
0067 # define DISABLE_UNRET 0
0068 #else
0069 # define DISABLE_UNRET (1 << (X86_FEATURE_UNRET & 31))
0070 #endif
0071
0072 #ifdef CONFIG_INTEL_IOMMU_SVM
0073 # define DISABLE_ENQCMD 0
0074 #else
0075 # define DISABLE_ENQCMD (1 << (X86_FEATURE_ENQCMD & 31))
0076 #endif
0077
0078 #ifdef CONFIG_X86_SGX
0079 # define DISABLE_SGX 0
0080 #else
0081 # define DISABLE_SGX (1 << (X86_FEATURE_SGX & 31))
0082 #endif
0083
0084 #ifdef CONFIG_INTEL_TDX_GUEST
0085 # define DISABLE_TDX_GUEST 0
0086 #else
0087 # define DISABLE_TDX_GUEST (1 << (X86_FEATURE_TDX_GUEST & 31))
0088 #endif
0089
0090
0091
0092
0093 #define DISABLED_MASK0 (DISABLE_VME)
0094 #define DISABLED_MASK1 0
0095 #define DISABLED_MASK2 0
0096 #define DISABLED_MASK3 (DISABLE_CYRIX_ARR|DISABLE_CENTAUR_MCR|DISABLE_K6_MTRR)
0097 #define DISABLED_MASK4 (DISABLE_PCID)
0098 #define DISABLED_MASK5 0
0099 #define DISABLED_MASK6 0
0100 #define DISABLED_MASK7 (DISABLE_PTI)
0101 #define DISABLED_MASK8 (DISABLE_TDX_GUEST)
0102 #define DISABLED_MASK9 (DISABLE_SGX)
0103 #define DISABLED_MASK10 0
0104 #define DISABLED_MASK11 (DISABLE_RETPOLINE|DISABLE_RETHUNK|DISABLE_UNRET)
0105 #define DISABLED_MASK12 0
0106 #define DISABLED_MASK13 0
0107 #define DISABLED_MASK14 0
0108 #define DISABLED_MASK15 0
0109 #define DISABLED_MASK16 (DISABLE_PKU|DISABLE_OSPKE|DISABLE_LA57|DISABLE_UMIP| \
0110 DISABLE_ENQCMD)
0111 #define DISABLED_MASK17 0
0112 #define DISABLED_MASK18 0
0113 #define DISABLED_MASK19 0
0114 #define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 20)
0115
0116 #endif