From b17331045770b3bb09955f2fe60cc70aebed9b74 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Wed, 8 Apr 2009 12:31:22 +0200 Subject: [PATCH] --- yaml --- r: 148863 b: refs/heads/master c: 91425084f74c0ad087b3fb6bdad79a825f952720 h: refs/heads/master i: 148861: d537931596affa0fa098b581b8a92212da34c3b5 148859: b7133e13e31b46f4024e3c068a0befca54e9c219 148855: 51d22b4cad713b8a05fca890de73a2fe2b1cde39 148847: d4d757cf5f64b31dbf7a4afa01552cc24e5ec4fc 148831: 2c559a92dc26126a36d2b5ee219535e9ab25246d 148799: 16d15395cf44fb17c970bf6bd751af32487123da 148735: 64fbab60082b56aa0b3ee462c1a2346319e9aa50 v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/cpu/mcheck/winchip.c | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 17fd004eea97..dbac053b8bd0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: efee4ca80980f97b60e91e3322c3342f19623eff +refs/heads/master: 91425084f74c0ad087b3fb6bdad79a825f952720 diff --git a/trunk/arch/x86/kernel/cpu/mcheck/winchip.c b/trunk/arch/x86/kernel/cpu/mcheck/winchip.c index 2a043d89811d..81b02487090b 100644 --- a/trunk/arch/x86/kernel/cpu/mcheck/winchip.c +++ b/trunk/arch/x86/kernel/cpu/mcheck/winchip.c @@ -2,11 +2,10 @@ * IDT Winchip specific Machine Check Exception Reporting * (C) Copyright 2002 Alan Cox */ - -#include -#include -#include #include +#include +#include +#include #include #include @@ -14,7 +13,7 @@ #include "mce.h" -/* Machine check handler for WinChip C6 */ +/* Machine check handler for WinChip C6: */ static void winchip_machine_check(struct pt_regs *regs, long error_code) { printk(KERN_EMERG "CPU0: Machine Check Exception.\n"); @@ -25,12 +24,18 @@ static void winchip_machine_check(struct pt_regs *regs, long error_code) void winchip_mcheck_init(struct cpuinfo_x86 *c) { u32 lo, hi; + machine_check_vector = winchip_machine_check; + /* Make sure the vector pointer is visible before we enable MCEs: */ wmb(); + rdmsr(MSR_IDT_FCR1, lo, hi); lo |= (1<<2); /* Enable EIERRINT (int 18 MCE) */ lo &= ~(1<<4); /* Enable MCE */ wrmsr(MSR_IDT_FCR1, lo, hi); + set_in_cr4(X86_CR4_MCE); - printk(KERN_INFO "Winchip machine check reporting enabled on CPU#0.\n"); + + printk(KERN_INFO + "Winchip machine check reporting enabled on CPU#0.\n"); }