#include <asm/traps.h>
 
 #include "mach_traps.h"
+#include "cpu/mcheck/mce.h"
 
 DECLARE_BITMAP(used_vectors, NR_VECTORS);
 EXPORT_SYMBOL_GPL(used_vectors);
        }
 }
 
+#ifdef CONFIG_X86_MCE
+void __kprobes do_machine_check(struct pt_regs *regs, long error)
+{
+       conditional_sti(regs);
+       machine_check_vector(regs, error);
+}
+#endif
+
 void __init trap_init(void)
 {
        int i;
        set_intr_gate(16, &coprocessor_error);
        set_intr_gate(17, &alignment_check);
 #ifdef CONFIG_X86_MCE
-       set_trap_gate(18, &machine_check);
+       set_intr_gate(18, &machine_check);
 #endif
        set_trap_gate(19, &simd_coprocessor_error);