From: Chuck Anderson Date: Mon, 26 Feb 2018 10:04:33 +0000 (-0800) Subject: retpoline: move setting of sysctl_ibrs_enabled and sysctl_ibpb_enabled to where SPEC_... X-Git-Tag: v4.1.12-124.31.3~1103 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=a493dd97d34ca7c27d653ac16f7ec783b51853bd;p=users%2Fjedix%2Flinux-maple.git retpoline: move setting of sysctl_ibrs_enabled and sysctl_ibpb_enabled to where SPEC_CTRL_IBRS_INUSE and SPEC_CTRL_IBPB_INUSE are set 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 Reviewed-by: Konrad Rzeszutek Wilk Reviewed-by: Darren Kenny Conflicts: arch/x86/include/asm/spec_ctrl.h --- diff --git a/arch/x86/include/asm/spec_ctrl.h b/arch/x86/include/asm/spec_ctrl.h index 963a382b82f0..bd56ce84ce4d 100644 --- a/arch/x86/include/asm/spec_ctrl.h +++ b/arch/x86/include/asm/spec_ctrl.h @@ -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; } /* diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c index 3f2183d6027b..aceb904642fa 100644 --- a/arch/x86/kernel/cpu/scattered.c +++ b/arch/x86/kernel/cpu/scattered.c @@ -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); } }