]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
retpoline/module: add bit defs for use_ibpb
authorChuck Anderson <chuck.anderson@oracle.com>
Mon, 12 Feb 2018 06:27:25 +0000 (22:27 -0800)
committerChuck Anderson <chuck.anderson@oracle.com>
Fri, 2 Mar 2018 22:03:34 +0000 (14:03 -0800)
Replace bit references for IBPB state in use_ibpb with:

    SPEC_CTRL_IBPB_INUSE
    SPEC_CTRL_IBPB_SUPPORTED
    SPEC_CTRL_IBPB_ADMIN_DISABLED

Change comment block describing use_ibrs flags to use symbolic values.
Remove duplicate comment block describing flag values in use_ibrs and use_ibpb.
Cosmetic change to defs for sysctl_ibrs_enabled, sysctl_ibpb_enabled and
sysctl_lfence_enabled in preparation for adding additional sysctl_* values.

Orabug: 27457549

Signed-off-by: Chuck Anderson <chuck.anderson@oracle.com>
Signed-off-by: Brian Maly <brian.maly@oracle.com>
Conflicts:
arch/x86/kernel/cpu/spec_ctrl.c

arch/x86/include/asm/spec_ctrl.h
arch/x86/kernel/cpu/bugs_64.c
arch/x86/kernel/cpu/spec_ctrl.c

index d32e6bb9fc4290944ede2e57cc4f4f99b811e635..f0e75ffab225b3cd8e7b7327d0e176ad1cdb1a5a 100644 (file)
@@ -278,25 +278,29 @@ static inline void clear_ibrs_disabled(void)
 extern int use_ibpb;
 extern u32 sysctl_ibpb_enabled;
 
-#define ibpb_supported         (use_ibpb & 0x2)
-#define ibpb_disabled          (use_ibpb & 0x4)
+#define SPEC_CTRL_IBPB_INUSE           (1<<0)  /* OS enables IBPB usage */
+#define SPEC_CTRL_IBPB_SUPPORTED       (1<<1)  /* System supports IBPB */
+#define SPEC_CTRL_IBPB_ADMIN_DISABLED  (1<<2)  /* Admin disables IBPB */
+
+#define ibpb_supported         (use_ibpb & SPEC_CTRL_IBPB_SUPPORTED)
+#define ibpb_disabled          (use_ibpb & SPEC_CTRL_IBPB_ADMIN_DISABLED)
 
 #define ibpb_inuse             (check_ibpb_inuse())
 
 static inline void set_ibpb_inuse(void)
 {
        if (ibpb_supported)
-               use_ibpb |= 0x1;
+               use_ibpb |= SPEC_CTRL_IBPB_INUSE;
 }
 
 static inline void clear_ibpb_inuse(void)
 {
-       use_ibpb &= ~0x1;
+       use_ibpb &= ~SPEC_CTRL_IBPB_INUSE;
 }
 
 static inline int check_ibpb_inuse(void)
 {
-       if (use_ibpb & 0x1)
+       if (use_ibpb & SPEC_CTRL_IBPB_INUSE)
                return 1;
        else
                /* rmb to prevent wrong speculation for security */
@@ -306,14 +310,14 @@ static inline int check_ibpb_inuse(void)
 
 static inline void set_ibpb_supported(void)
 {
-       use_ibpb |= 0x2;
+       use_ibpb |= SPEC_CTRL_IBPB_SUPPORTED;
        if (!ibpb_disabled)
                set_ibpb_inuse();
 }
 
 static inline void set_ibpb_disabled(void)
 {
-       use_ibpb |= 0x4;
+       use_ibpb |= SPEC_CTRL_IBPB_ADMIN_DISABLED;
        if (check_ibpb_inuse())
                clear_ibpb_inuse();
        /* Update what sysfs shows. */
@@ -322,7 +326,7 @@ static inline void set_ibpb_disabled(void)
 
 static inline void clear_ibpb_disabled(void)
 {
-       use_ibpb &= ~0x4;
+       use_ibpb &= ~SPEC_CTRL_IBPB_ADMIN_DISABLED;
        set_ibpb_inuse();
        /* Update what sysfs shows. */
        sysctl_ibpb_enabled = ibpb_inuse ? 1 : 0;
index 5ae5dcdb54642c72e3f5b019094bf9c18dc852d7..3eeff1bcd364dae227ae6aed1416a7014297550c 100644 (file)
 #include <asm/intel-family.h>
 
 /*
- * use IBRS
- * bit 0 = indicate if ibrs is currently in use
- * bit 1 = indicate if system supports ibrs
- * bit 2 = indicate if admin disables ibrs
+ * use_ibrs flags:
+ * SPEC_CTRL_IBRS_INUSE                        indicate if ibrs is currently in use
+ * SPEC_CTRL_IBRS_SUPPORTED            indicate if system supports ibrs
+ * SPEC_CTRL_IBRS_ADMIN_DISABLED       indicate if admin disables ibrs
  */
 int use_ibrs;
 EXPORT_SYMBOL(use_ibrs);
 
 /*
- * use IBRS
- * bit 0 = indicate if ibpb is currently in use
- * bit 1 = indicate if system supports ibpb
- * bit 2 = indicate if admin disables ibpb
+ * use_ibpb flags:
+ * SPEC_CTRL_IBPB_INUSE                        indicate if ibpb is currently in use
+ * SPEC_CTRL_IBPB_SUPPORTED            indicate if system supports ibpb
+ * SPEC_CTRL_IBPB_ADMIN_DISABLED       indicate if admin disables ibpb
  */
 int use_ibpb;
 EXPORT_SYMBOL(use_ibpb);
index a568124222d346429557972434b1d9c7f215d224..a880b70656204891278560edc90e0df8150687c2 100644 (file)
@@ -8,14 +8,8 @@
 #include <asm/cpufeature.h>
 #include <asm/microcode.h>
 
-/*
- * use_ibrs
- * bit 0 = indicate if ibrs is currently in use
- * bit 1 = indicate if system supports ibrs
- * bit 2 = indicate if admin disables ibrs
- */
-
-u32 sysctl_ibrs_enabled = 0, sysctl_ibpb_enabled = 0;
+u32 sysctl_ibrs_enabled;
+u32 sysctl_ibpb_enabled;
 EXPORT_SYMBOL(sysctl_ibrs_enabled);
 EXPORT_SYMBOL(sysctl_ibpb_enabled);