On Tue, Apr 16, 2024 at 05:15:06PM -0700, Sean Christopherson wrote: > Add a generic Kconfig, CPU_MITIGATIONS, to control whether or not CPU > mitigations are enabled by default, and force it on for all architectures > except x86. A recent commit to turn mitigations off by default if > SPECULATION_MITIGATIONS=n kinda sorta missed that "cpu_mitigations" is > completely generic, where as SPECULATION_MITIGATIONS is x86 specific. > > Alternatively, SPECULATION_MITIGATIONS could simply be defined in common > code, but that creates weirdness for x86 because SPECULATION_MITIGATIONS > ends up being defined twice, and the default behavior would likely depend > on the arbitrary include order (if the two definitions diverged). > > Ideally, CPU_MITIGATIONS would be unconditionally on by default for all > architectures, and manually turned off, but there is no way to unselect a > Kconfig. > > Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> > Reported-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx> > Reported-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> > Closes: https://lkml.kernel.org/r/20240413115324.53303a68%40canb.auug.org.au > Fixes: f337a6a21e2f ("x86/cpu: Actually turn off mitigations by default for SPECULATION_MITIGATIONS=n") > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> > --- > arch/x86/Kconfig | 1 + > drivers/base/Kconfig | 3 +++ > kernel/cpu.c | 4 ++-- > 3 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index 4474bf32d0a4..a0eca6313276 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -2490,6 +2490,7 @@ config PREFIX_SYMBOLS > > menuconfig SPECULATION_MITIGATIONS > bool "Mitigations for speculative execution vulnerabilities" > + select CPU_MITIGATIONS > default y > help > Say Y here to enable options which enable mitigations for > diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig > index 2b8fd6bb7da0..dab19f15fa57 100644 > --- a/drivers/base/Kconfig > +++ b/drivers/base/Kconfig > @@ -191,6 +191,9 @@ config GENERIC_CPU_AUTOPROBE > config GENERIC_CPU_VULNERABILITIES > bool > > +config CPU_MITIGATIONS > + def_bool !X86 > + > config SOC_BUS > bool > select GLOB > diff --git a/kernel/cpu.c b/kernel/cpu.c > index 07ad53b7f119..bb0ff275fb46 100644 > --- a/kernel/cpu.c > +++ b/kernel/cpu.c > @@ -3207,8 +3207,8 @@ enum cpu_mitigations { > }; > > static enum cpu_mitigations cpu_mitigations __ro_after_init = > - IS_ENABLED(CONFIG_SPECULATION_MITIGATIONS) ? CPU_MITIGATIONS_AUTO : > - CPU_MITIGATIONS_OFF; > + IS_ENABLED(CONFIG_CPU_MITIGATIONS) ? CPU_MITIGATIONS_AUTO : > + CPU_MITIGATIONS_OFF; > > static int __init mitigations_parse_cmdline(char *arg) > { > -- > 2.44.0.683.g7961c838ac-goog Thanks, Sean! Acked-by: Will Deacon <will@xxxxxxxxxx> Will