Commit 2f3c30e6 authored by Joachim Deguara's avatar Joachim Deguara Committed by Andi Kleen

[PATCH] i386: check capability

Currently the i386 architecture checks the family for mce capability and this
removes that and uses the CPUID information.  Tested on a K8 revE and a
family10h processor.

This eliminates checking of a set AMD procesor family if mce is
allowed and relies on the information being in CPUID.
Signed-off-by: default avatarJoachim Deguara <joachim.deguara@amd.com>
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 1bdae458
...@@ -75,6 +75,9 @@ void amd_mcheck_init(struct cpuinfo_x86 *c) ...@@ -75,6 +75,9 @@ void amd_mcheck_init(struct cpuinfo_x86 *c)
machine_check_vector = k7_machine_check; machine_check_vector = k7_machine_check;
wmb(); wmb();
if (!cpu_has(c, X86_FEATURE_MCE))
return;
printk (KERN_INFO "Intel machine check architecture supported.\n"); printk (KERN_INFO "Intel machine check architecture supported.\n");
rdmsr (MSR_IA32_MCG_CAP, l, h); rdmsr (MSR_IA32_MCG_CAP, l, h);
if (l & (1<<8)) /* Control register present ? */ if (l & (1<<8)) /* Control register present ? */
......
...@@ -38,8 +38,7 @@ void mcheck_init(struct cpuinfo_x86 *c) ...@@ -38,8 +38,7 @@ void mcheck_init(struct cpuinfo_x86 *c)
switch (c->x86_vendor) { switch (c->x86_vendor) {
case X86_VENDOR_AMD: case X86_VENDOR_AMD:
if (c->x86==6 || c->x86==15) amd_mcheck_init(c);
amd_mcheck_init(c);
break; break;
case X86_VENDOR_INTEL: case X86_VENDOR_INTEL:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment