[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1c73c8b2-02ad-44ab-ba9b-44b12f3e09fd@suse.com>
Date: Fri, 17 Oct 2025 18:13:31 +0300
From: Nikolay Borisov <nik.borisov@...e.com>
To: David Kaplan <david.kaplan@....com>, Thomas Gleixner
<tglx@...utronix.de>, Borislav Petkov <bp@...en8.de>,
Peter Zijlstra <peterz@...radead.org>, Josh Poimboeuf <jpoimboe@...nel.org>,
Pawan Gupta <pawan.kumar.gupta@...ux.intel.com>,
Ingo Molnar <mingo@...hat.com>, Dave Hansen <dave.hansen@...ux.intel.com>,
x86@...nel.org, "H . Peter Anvin" <hpa@...or.com>
Cc: Alexander Graf <graf@...zon.com>,
Boris Ostrovsky <boris.ostrovsky@...cle.com>, linux-kernel@...r.kernel.org
Subject: Re: [RFC PATCH 08/56] x86/bugs: Reset SSB mitigations
On 10/13/25 17:33, David Kaplan wrote:
> Add function to reset SSB mitigations back to their boot-time defaults.
>
> Signed-off-by: David Kaplan <david.kaplan@....com>
> ---
> arch/x86/kernel/cpu/bugs.c | 24 ++++++++++++++++++++++++
> 1 file changed, 24 insertions(+)
>
> diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c
> index 4ca46f58e384..cc7b1b67d22d 100644
> --- a/arch/x86/kernel/cpu/bugs.c
> +++ b/arch/x86/kernel/cpu/bugs.c
> @@ -380,6 +380,16 @@ static void x86_amd_ssb_disable(void)
> wrmsrq(MSR_AMD64_LS_CFG, msrval);
> }
>
> +static void x86_amd_ssb_enable(void)
> +{
> + u64 msrval = x86_amd_ls_cfg_base;
> +
> + if (boot_cpu_has(X86_FEATURE_VIRT_SSBD))
> + wrmsrl(MSR_AMD64_VIRT_SPEC_CTRL, 0);
> + else if (boot_cpu_has(X86_FEATURE_LS_CFG_SSBD))
> + wrmsrl(MSR_AMD64_LS_CFG, msrval);
nit: No need for the local msrval variable, just pass x86_amd_ls_cfg_base.
> +}
> +
> #undef pr_fmt
> #define pr_fmt(fmt) "MDS: " fmt
>
> @@ -2672,6 +2682,17 @@ static void __init ssb_apply_mitigation(void)
> }
> }
>
> +#ifdef CONFIG_DYNAMIC_MITIGATIONS
> +static void ssb_reset_mitigation(void)
> +{
> + setup_clear_cpu_cap(X86_FEATURE_SPEC_STORE_BYPASS_DISABLE);
> + x86_spec_ctrl_base &= ~SPEC_CTRL_SSBD;
> + nossb = false;
> + ssb_mode = IS_ENABLED(CONFIG_MITIGATION_SSB) ?
> + SPEC_STORE_BYPASS_AUTO : SPEC_STORE_BYPASS_NONE;
> +}
> +#endif
> +
> #undef pr_fmt
> #define pr_fmt(fmt) "Speculation prctl: " fmt
>
> @@ -2916,6 +2937,8 @@ void x86_spec_ctrl_setup_ap(void)
>
> if (ssb_mode == SPEC_STORE_BYPASS_DISABLE)
> x86_amd_ssb_disable();
> + else
> + x86_amd_ssb_enable();
Does it mean SSB hasn't been working correctly up until now since
_enable function has been missing?
<snip>
Powered by blists - more mailing lists