Commit a94e02c7 authored by Brian Gerst's avatar Brian Gerst Committed by Linus Torvalds

[PATCH] i386 do_machine_check() is redundant.

This removes "do_machine_check()" in favour of just calling the
appropriate machine check handler directly from the lowlevel exception
code.
parent 9c1a0224
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include "mce.h" #include "mce.h"
/* Machine Check Handler For AMD Athlon/Duron */ /* Machine Check Handler For AMD Athlon/Duron */
static void k7_machine_check(struct pt_regs * regs, long error_code) static asmlinkage void k7_machine_check(struct pt_regs * regs, long error_code)
{ {
int recover=1; int recover=1;
u32 alow, ahigh, high, low; u32 alow, ahigh, high, low;
......
...@@ -18,18 +18,13 @@ int mce_disabled __initdata = 0; ...@@ -18,18 +18,13 @@ int mce_disabled __initdata = 0;
int nr_mce_banks; int nr_mce_banks;
/* Handle unconfigured int18 (should never happen) */ /* Handle unconfigured int18 (should never happen) */
static void unexpected_machine_check(struct pt_regs * regs, long error_code) static asmlinkage void unexpected_machine_check(struct pt_regs * regs, long error_code)
{ {
printk(KERN_ERR "CPU#%d: Unexpected int18 (Machine Check).\n", smp_processor_id()); printk(KERN_ERR "CPU#%d: Unexpected int18 (Machine Check).\n", smp_processor_id());
} }
/* Call the installed machine check handler for this CPU setup. */ /* Call the installed machine check handler for this CPU setup. */
void (*machine_check_vector)(struct pt_regs *, long error_code) = unexpected_machine_check; void asmlinkage (*machine_check_vector)(struct pt_regs *, long error_code) = unexpected_machine_check;
asmlinkage void do_machine_check(struct pt_regs * regs, long error_code)
{
machine_check_vector(regs, error_code);
}
/* This has to be run for each processor */ /* This has to be run for each processor */
void __init mcheck_init(struct cpuinfo_x86 *c) void __init mcheck_init(struct cpuinfo_x86 *c)
......
...@@ -7,7 +7,7 @@ void intel_p6_mcheck_init(struct cpuinfo_x86 *c); ...@@ -7,7 +7,7 @@ void intel_p6_mcheck_init(struct cpuinfo_x86 *c);
void winchip_mcheck_init(struct cpuinfo_x86 *c); void winchip_mcheck_init(struct cpuinfo_x86 *c);
/* Call the installed machine check handler for this CPU setup. */ /* Call the installed machine check handler for this CPU setup. */
extern void (*machine_check_vector)(struct pt_regs *, long error_code); extern asmlinkage void (*machine_check_vector)(struct pt_regs *, long error_code);
extern int mce_disabled __initdata; extern int mce_disabled __initdata;
extern int nr_mce_banks; extern int nr_mce_banks;
......
...@@ -148,7 +148,7 @@ static inline int intel_get_extended_msrs(struct intel_mce_extended_msrs *r) ...@@ -148,7 +148,7 @@ static inline int intel_get_extended_msrs(struct intel_mce_extended_msrs *r)
return mce_num_extended_msrs; return mce_num_extended_msrs;
} }
static void intel_machine_check(struct pt_regs * regs, long error_code) static asmlinkage void intel_machine_check(struct pt_regs * regs, long error_code)
{ {
int recover=1; int recover=1;
u32 alow, ahigh, high, low; u32 alow, ahigh, high, low;
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
#include "mce.h" #include "mce.h"
/* Machine check handler for Pentium class Intel */ /* Machine check handler for Pentium class Intel */
static void pentium_machine_check(struct pt_regs * regs, long error_code) static asmlinkage void pentium_machine_check(struct pt_regs * regs, long error_code)
{ {
u32 loaddr, hi, lotype; u32 loaddr, hi, lotype;
rdmsr(MSR_IA32_P5_MC_ADDR, loaddr, hi); rdmsr(MSR_IA32_P5_MC_ADDR, loaddr, hi);
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
#include "mce.h" #include "mce.h"
/* Machine Check Handler For PII/PIII */ /* Machine Check Handler For PII/PIII */
static void intel_machine_check(struct pt_regs * regs, long error_code) static asmlinkage void intel_machine_check(struct pt_regs * regs, long error_code)
{ {
int recover=1; int recover=1;
u32 alow, ahigh, high, low; u32 alow, ahigh, high, low;
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#include "mce.h" #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) static asmlinkage void winchip_machine_check(struct pt_regs * regs, long error_code)
{ {
printk(KERN_EMERG "CPU0: Machine Check Exception.\n"); printk(KERN_EMERG "CPU0: Machine Check Exception.\n");
} }
......
...@@ -595,7 +595,7 @@ ENTRY(page_fault) ...@@ -595,7 +595,7 @@ ENTRY(page_fault)
#ifdef CONFIG_X86_MCE #ifdef CONFIG_X86_MCE
ENTRY(machine_check) ENTRY(machine_check)
pushl $0 pushl $0
pushl $do_machine_check pushl machine_check_vector
jmp error_code jmp error_code
#endif #endif
......
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