Re: [PATCH 1/3] x86/cpu: Actually turn off mitigations by default for SPECULATION_MITIGATIONS=n

From: Michael Ellerman
Date: Tue Apr 16 2024 - 07:06:57 EST


Sean Christopherson <seanjc@xxxxxxxxxx> writes:
> On Mon, Apr 15, 2024, Geert Uytterhoeven wrote:
>> On Sat, Apr 13, 2024 at 11:38 AM Michael Ellerman <mpe@xxxxxxxxxxxxxx> wrote:
>> > Michael Ellerman <mpe@xxxxxxxxxxxxxx> writes:
>> > > Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> writes:
>> > ...
>> > >> On Tue, 9 Apr 2024 10:51:05 -0700 Sean Christopherson <seanjc@xxxxxxxxxx> wrote:
>> > ...
>> > >>> diff --git a/kernel/cpu.c b/kernel/cpu.c
>> > >>> index 8f6affd051f7..07ad53b7f119 100644
>> > >>> --- a/kernel/cpu.c
>> > >>> +++ b/kernel/cpu.c
>> > >>> @@ -3207,7 +3207,8 @@ enum cpu_mitigations {
>> > >>> };
>> > >>>
>> > >>> static enum cpu_mitigations cpu_mitigations __ro_after_init =
>> > >>> - CPU_MITIGATIONS_AUTO;
>> > >>> + IS_ENABLED(CONFIG_SPECULATION_MITIGATIONS) ? CPU_MITIGATIONS_AUTO :
>> > >>> + CPU_MITIGATIONS_OFF;
>> > >>>
>> > >>> static int __init mitigations_parse_cmdline(char *arg)
>> > >>> {
>> >
>> > I think a minimal workaround/fix would be:
>> >
>> > diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
>> > index 2b8fd6bb7da0..290be2f9e909 100644
>> > --- a/drivers/base/Kconfig
>> > +++ b/drivers/base/Kconfig
>> > @@ -191,6 +191,10 @@ config GENERIC_CPU_AUTOPROBE
>> > config GENERIC_CPU_VULNERABILITIES
>> > bool
>> >
>> > +config SPECULATION_MITIGATIONS
>> > + def_bool y
>> > + depends on !X86
>> > +
>> > config SOC_BUS
>> > bool
>> > select GLOB
>>
>> Thanks, that works for me (on arm64), so
>> Tested-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
>
> Oof. I completely missed that "cpu_mitigations" wasn't x86-only. I can't think
> of better solution than an on-by-default generic Kconfig, though can't that it
> more simply be:
>
> diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
> index 2b8fd6bb7da0..5930cb56ee29 100644
> --- a/drivers/base/Kconfig
> +++ b/drivers/base/Kconfig
> @@ -191,6 +191,9 @@ config GENERIC_CPU_AUTOPROBE
> config GENERIC_CPU_VULNERABILITIES
> bool
>
> +config SPECULATION_MITIGATIONS
> + def_bool !X86
> +

Yeah that works too.

cheers