]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
retpoline: move setting of sysctl_ibrs_enabled and sysctl_ibpb_enabled to where SPEC_...
authorChuck Anderson <chuck.anderson@oracle.com>
Mon, 26 Feb 2018 10:04:33 +0000 (02:04 -0800)
committerChuck Anderson <chuck.anderson@oracle.com>
Sat, 3 Mar 2018 01:58:51 +0000 (17:58 -0800)
Move the setting of sysctl_ibrs_enabled and sysctl_ibpb_enabled to the
functions that set SPEC_CTRL_IBRS_INUSE and SPEC_CTRL_IBPB_INUSE.

Orabug: 27625404
Signed-off-by: Chuck Anderson <chuck.anderson@oracle.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
Conflicts:
arch/x86/include/asm/spec_ctrl.h

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

index 963a382b82f038fb800c0f1488a13b9d4cf4e999..bd56ce84ce4d35a9576d983fa3528f5c0945d74e 100644 (file)
@@ -222,6 +222,8 @@ static inline bool set_ibrs_inuse(void)
 {
        if (ibrs_supported && !ibrs_disabled) {
                use_ibrs |= SPEC_CTRL_IBRS_INUSE;
+               /* Update what sysfs shows. */
+               sysctl_ibrs_enabled = true;
                return true;
        } else {
                return false;
@@ -231,6 +233,8 @@ static inline bool set_ibrs_inuse(void)
 static inline void clear_ibrs_inuse(void)
 {
        use_ibrs &= ~SPEC_CTRL_IBRS_INUSE;
+       /* Update what sysfs shows. */
+       sysctl_ibrs_enabled = false;
 }
 
 static inline int check_ibrs_inuse(void)
@@ -256,16 +260,12 @@ static inline void set_ibrs_disabled(void)
        use_ibrs |= SPEC_CTRL_IBRS_ADMIN_DISABLED;
        if (check_ibrs_inuse())
                clear_ibrs_inuse();
-       /* Update what sysfs shows. */
-       sysctl_ibrs_enabled = ibrs_inuse ? 1 : 0;
 }
 
 static inline void clear_ibrs_disabled(void)
 {
        use_ibrs &= ~SPEC_CTRL_IBRS_ADMIN_DISABLED;
        (void)set_ibrs_inuse();
-       /* Update what sysfs shows. */
-       sysctl_ibrs_enabled = ibrs_inuse ? 1 : 0;
 }
 
 static inline void set_ibrs_firmware(void)
@@ -296,6 +296,7 @@ static inline bool set_ibpb_inuse(void)
 {
        if (ibpb_supported && !ibpb_disabled) {
                use_ibpb |= SPEC_CTRL_IBPB_INUSE;
+               sysctl_ibpb_enabled = true;
                return true;
        } else {
                return false;
@@ -305,6 +306,7 @@ static inline bool set_ibpb_inuse(void)
 static inline void clear_ibpb_inuse(void)
 {
        use_ibpb &= ~SPEC_CTRL_IBPB_INUSE;
+       sysctl_ibpb_enabled = false;
 }
 
 static inline int check_ibpb_inuse(void)
@@ -330,16 +332,12 @@ static inline void set_ibpb_disabled(void)
        use_ibpb |= SPEC_CTRL_IBPB_ADMIN_DISABLED;
        if (check_ibpb_inuse())
                clear_ibpb_inuse();
-       /* Update what sysfs shows. */
-       sysctl_ibpb_enabled = ibpb_inuse ? 1 : 0;
 }
 
 static inline void clear_ibpb_disabled(void)
 {
        use_ibpb &= ~SPEC_CTRL_IBPB_ADMIN_DISABLED;
        (void)set_ibpb_inuse();
-       /* Update what sysfs shows. */
-       sysctl_ibpb_enabled = ibpb_inuse ? 1 : 0;
 }
 
 /*
index 3f2183d6027b66d67544802281356dd99d76af1c..aceb904642fa817164531e4953e02d736831bd22 100644 (file)
@@ -194,12 +194,9 @@ void init_scattered_cpuid_features(struct cpuinfo_x86 *c,
                         * would re-enable it (say if spectre_v2=off is used).
                         */
                        set_ibrs_firmware();
-                       sysctl_ibrs_enabled = ibrs_inuse ? 1 : 0;
                }
-               if (cpu_has(c, X86_FEATURE_IBPB)) {
+               if (cpu_has(c, X86_FEATURE_IBPB))
                        set_ibpb_supported();
-                       sysctl_ibpb_enabled = ibpb_inuse ? 1 : 0;
-               }
                mutex_unlock(&spec_ctrl_mutex);
        }
 }