[PATCH] x86, mce: Don't initialize MCEs on unknown CPUs

From: Ingo Molnar
Date: Mon Aug 17 2009 - 07:30:29 EST



* Hidetoshi Seto <seto.hidetoshi@xxxxxxxxxxxxxx> wrote:

> Old mce codes doesn't take bootlog.
>
> One possibility is: if the BIOS doesn't clear status in banks, new
> mce codes will try to log such junks. If the junk is totally junk
> but can be decoded as a valid log with MISCV or ADDRV bit, and if
> the cpu try to access register which is not implemented (e.g.
> IA32_MCi_MISC/ADDR), then such access might cause a general
> protection exception. (ref. ASDM 3A 15.3.2.3)
>
> I'm just guessing...

btw., i found the bug - it's due to:

# CONFIG_CPU_SUP_INTEL is not set

which is in essence disabling the MCE quirks in mce_cpu_quirks().
Quirk handlers like this, if they see an 'unknown' CPU should assume
the worst and go for the maximum amount of quirks - or disable MCE.

I went for the second option as it's the safer one - see the fix
below.

Ingo

---------------------->