Re: [RFC PATCH 15/56] x86/bugs: Reset BHI mitigations

Pawan Gupta
2025-10-24T02:49:25Z

On Mon, Oct 13, 2025 at 09:34:03AM -0500, David Kaplan wrote:
> Add function to reset BHI mitigations back to their boot-time defaults.
>
> Signed-off-by: David Kaplan <david.kaplan@amd.com>
> ---
> arch/x86/kernel/cpu/bugs.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c
> index e765ac0b9240..67561e5c2154 100644
> --- a/arch/x86/kernel/cpu/bugs.c
> +++ b/arch/x86/kernel/cpu/bugs.c
> @@ -2360,6 +2360,17 @@ static void __init bhi_apply_mitigation(void)
> setup_force_cpu_cap(X86_FEATURE_CLEAR_BHB_VMEXIT);
> }
>
> +#ifdef CONFIG_DYNAMIC_MITIGATIONS
> +static void bhi_reset_mitigation(void)
> +{
> + /* RRSBA already cleared in spectre_v2_reset_mitigation() */
> + setup_clear_cpu_cap(X86_FEATURE_CLEAR_BHB_VMEXIT);
> + setup_clear_cpu_cap(X86_FEATURE_CLEAR_BHB_LOOP);

Also needs to reset SPEC_CTRL_BHI_DIS_S in x86_spec_ctrl_base.

An alternative is to add spec_ctrl_reset_mitigation() that resets
x86_spec_ctrl_base for SPEC_CTRL_MITIGATIONS_MASK. To be consistent with
reset functions of other mitigations, probably also reset the MSR.

> + bhi_mitigation = IS_ENABLED(CONFIG_MITIGATION_SPECTRE_BHI) ?
> + BHI_MITIGATION_AUTO : BHI_MITIGATION_OFF;
> +}