Re: [PATCH 01/22] x86/srso: Fix srso_show_state() side effect

From: Borislav Petkov
Date: Mon Aug 21 2023 - 02:05:24 EST


On Sun, Aug 20, 2023 at 06:18:58PM -0700, Josh Poimboeuf wrote:
> Reading the 'spec_rstack_overflow' sysfs file can trigger an unnecessary
> MSR write, and possibly even a (handled) exception if the microcode
> hasn't been updated.
>
> Avoid all that by just checking X86_FEATURE_IBPB_BRTYPE instead, which
> gets set by srso_select_mitigation() if the updated microcode exists.
>
> Fixes: fb3bd914b3ec ("x86/srso: Add a Speculative RAS Overflow mitigation")
> Signed-off-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
> ---
> arch/x86/kernel/cpu/bugs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c
> index f081d26616ac..bdd3e296f72b 100644
> --- a/arch/x86/kernel/cpu/bugs.c
> +++ b/arch/x86/kernel/cpu/bugs.c
> @@ -2717,7 +2717,7 @@ static ssize_t srso_show_state(char *buf)
>

Please put here a comment - something along the lines of:

"X86_FEATURE_IBPB_BRTYPE gets set as a result of the presence of the
needed microcode so checking that is equivalent."

so that it is clear why it is ok to check this feature bit.

> return sysfs_emit(buf, "%s%s\n",
> srso_strings[srso_mitigation],
> - (cpu_has_ibpb_brtype_microcode() ? "" : ", no microcode"));
> + boot_cpu_has(X86_FEATURE_IBPB_BRTYPE) ? "" : ", no microcode");
> }
>
> static ssize_t gds_show_state(char *buf)
> --

Thx.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette