x86/fred: Disable FRED support if CONFIG_X86_FRED is disabled
authorH. Peter Anvin (Intel) <hpa@zytor.com>
Tue, 5 Dec 2023 10:49:56 +0000 (02:49 -0800)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 25 Jan 2024 18:10:30 +0000 (19:10 +0100)
Add CONFIG_X86_FRED to <asm/disabled-features.h> to make
cpu_feature_enabled() work correctly with FRED.

Originally-by: Megha Dey <megha.dey@intel.com>
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shan Kang <shan.kang@intel.com>
Link: https://lore.kernel.org/r/20231205105030.8698-8-xin3.li@intel.com
arch/x86/include/asm/disabled-features.h
tools/arch/x86/include/asm/disabled-features.h

index 702d93fdd10e8d44015cc687cb90106ae5bd422c..f40b29d3abad780bf42c312987e7b4f9b772885c 100644 (file)
 #define DISABLE_IBT    (1 << (X86_FEATURE_IBT & 31))
 #endif
 
+#ifdef CONFIG_X86_FRED
+# define DISABLE_FRED  0
+#else
+# define DISABLE_FRED  (1 << (X86_FEATURE_FRED & 31))
+#endif
+
 /*
  * Make sure to add features to the correct mask
  */
 #define DISABLED_MASK10        0
 #define DISABLED_MASK11        (DISABLE_RETPOLINE|DISABLE_RETHUNK|DISABLE_UNRET| \
                         DISABLE_CALL_DEPTH_TRACKING|DISABLE_USER_SHSTK)
-#define DISABLED_MASK12        (DISABLE_LAM)
+#define DISABLED_MASK12        (DISABLE_FRED|DISABLE_LAM)
 #define DISABLED_MASK13        0
 #define DISABLED_MASK14        0
 #define DISABLED_MASK15        0
index 702d93fdd10e8d44015cc687cb90106ae5bd422c..f40b29d3abad780bf42c312987e7b4f9b772885c 100644 (file)
 #define DISABLE_IBT    (1 << (X86_FEATURE_IBT & 31))
 #endif
 
+#ifdef CONFIG_X86_FRED
+# define DISABLE_FRED  0
+#else
+# define DISABLE_FRED  (1 << (X86_FEATURE_FRED & 31))
+#endif
+
 /*
  * Make sure to add features to the correct mask
  */
 #define DISABLED_MASK10        0
 #define DISABLED_MASK11        (DISABLE_RETPOLINE|DISABLE_RETHUNK|DISABLE_UNRET| \
                         DISABLE_CALL_DEPTH_TRACKING|DISABLE_USER_SHSTK)
-#define DISABLED_MASK12        (DISABLE_LAM)
+#define DISABLED_MASK12        (DISABLE_FRED|DISABLE_LAM)
 #define DISABLED_MASK13        0
 #define DISABLED_MASK14        0
 #define DISABLED_MASK15        0