Messages in this thread | | | Date | Thu, 22 Jan 2015 17:43:15 +0000 | From | James Dingwall <> | Subject | Re: Linux 3.18.2 / xen 4.4.1 dom0 - microcode oops |
| |
On Thu, Jan 22, 2015 at 04:30:02PM +0100, Borislav Petkov wrote: > On Thu, Jan 22, 2015 at 09:53:04AM -0500, Boris Ostrovsky wrote: > > Alternatively, we could return an error (-EINVAL?) from > > microcode_init() when either of these two conditions is true. > > Yeah, this should be the right fix. > > James, does that fix your issue? (It should.) > > --- > diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c > index 15c29096136b..36a83617eb21 100644 > --- a/arch/x86/kernel/cpu/microcode/core.c > +++ b/arch/x86/kernel/cpu/microcode/core.c > @@ -552,7 +552,7 @@ static int __init microcode_init(void) > int error; > > if (paravirt_enabled() || dis_ucode_ldr) > - return 0; > + return -EINVAL; > > if (c->x86_vendor == X86_VENDOR_INTEL) > microcode_ops = init_intel_microcode(); > > --
This patch solves it for me on my dom0 with 3.18.3, now there is nothing printed at all from the microcode driver which doesn't seem surprising given where the return is. I'll check it on bare metal at the next opportunity but from my understanding of what is happening there I don't see that it should have any impact at all.
Thanks, James
| |