|
@@ -39,6 +39,16 @@
|
|
|
|
|
|
#include "mce.h"
|
|
|
|
|
|
+/* Handle unconfigured int18 (should never happen) */
|
|
|
+static void unexpected_machine_check(struct pt_regs *regs, long error_code)
|
|
|
+{
|
|
|
+ printk(KERN_ERR "CPU#%d: Unexpected int18 (Machine Check).\n",
|
|
|
+ smp_processor_id());
|
|
|
+}
|
|
|
+
|
|
|
+/* Call the installed machine check handler for this CPU setup. */
|
|
|
+void (*machine_check_vector)(struct pt_regs *, long error_code) =
|
|
|
+ unexpected_machine_check;
|
|
|
#ifdef CONFIG_X86_64
|
|
|
|
|
|
#define MISC_MCELOG_MINOR 227
|
|
@@ -715,6 +725,8 @@ void __cpuinit mcheck_init(struct cpuinfo_x86 *c)
|
|
|
}
|
|
|
mce_cpu_quirks(c);
|
|
|
|
|
|
+ machine_check_vector = do_machine_check;
|
|
|
+
|
|
|
mce_init(NULL);
|
|
|
mce_cpu_features(c);
|
|
|
mce_init_timer();
|
|
@@ -1285,17 +1297,6 @@ int mce_disabled;
|
|
|
int nr_mce_banks;
|
|
|
EXPORT_SYMBOL_GPL(nr_mce_banks); /* non-fatal.o */
|
|
|
|
|
|
-/* Handle unconfigured int18 (should never happen) */
|
|
|
-static void unexpected_machine_check(struct pt_regs *regs, long error_code)
|
|
|
-{
|
|
|
- printk(KERN_ERR "CPU#%d: Unexpected int18 (Machine Check).\n",
|
|
|
- smp_processor_id());
|
|
|
-}
|
|
|
-
|
|
|
-/* Call the installed machine check handler for this CPU setup. */
|
|
|
-void (*machine_check_vector)(struct pt_regs *, long error_code) =
|
|
|
- unexpected_machine_check;
|
|
|
-
|
|
|
/* This has to be run for each processor */
|
|
|
void mcheck_init(struct cpuinfo_x86 *c)
|
|
|
{
|