On Wed, Feb 7, 2018 at 6:12 PM, Borislav Petkov <b...@alien8.de> wrote: > On Wed, Feb 07, 2018 at 04:31:59PM +0000, Rolf Neugebauer wrote: >> arch/x86/kernel/cpu/microcode/core.c | 28 +++++++++++++++++++--------- >> 1 file changed, 19 insertions(+), 9 deletions(-) >> >> diff --git a/arch/x86/kernel/cpu/microcode/core.c >> b/arch/x86/kernel/cpu/microcode/core.c >> index b3e94ef461fd..1b3e0aa4c511 100644 >> --- a/arch/x86/kernel/cpu/microcode/core.c >> +++ b/arch/x86/kernel/cpu/microcode/core.c >> @@ -44,7 +44,7 @@ >> >> static struct microcode_ops *microcode_ops; >> >> -static bool dis_ucode_ldr; >> +static bool dis_ucode_ldr = true; >> >> static int __init disable_loader(char *str) >> { >> @@ -81,6 +81,7 @@ struct cpu_info_ctx { >> >> static bool __init check_loader_disabled_bsp(void) >> { >> + u32 a, b, c, d; >> #ifdef CONFIG_X86_32 >> const char *cmdline = (const char *)__pa_nodebug(boot_command_line); >> const char *opt = "dis_ucode_ldr"; >> @@ -93,8 +94,23 @@ static bool __init check_loader_disabled_bsp(void) >> bool *res = &dis_ucode_ldr; >> #endif >> >> - if (cmdline_find_option_bool(cmdline, option)) >> - *res = true; >> + if (!have_cpuid_p()) >> + return *res; > > That might cause an issue, see 1f161f67a272c. Might wanna backport that > commit too, just in case, for those old CPUID-less geodes.
On the 4.4 kernel, 1f161f67a272c ("x86/microcode: Do the family check first") does not apply cleanly. Looks like it relies on 309aac77768c0 ("x86/microcode: Decrease CPUID use") and 7a93a40be23e5 ("x86/microcode: Remove local vendor variable") as well. These don't apply cleanly either. Should I just manually backport the functionality of 1f161f67a272c? Rolf > > The rest looks ok. > > -- > Regards/Gruss, > Boris. > > Good mailing practices for 400: avoid top-posting and trim the reply.