MCE: Don't run 32bit machine checks with interrupts on
Running machine checks with interrupt on is a extremly bad idea. The machine check handler only runs when the system is broken and needs to finish as quickly as possible. Remove the respective bogus post 2.6.27 regression and call the machine check vector directly again. This removes only code. Signed-off-by: Andi Kleen <ak@linux.intel.com> [Cherry-picked from x86/mce] Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
Родитель
2bfef69d9e
Коммит
d2f6f7aeee
|
@ -1024,7 +1024,7 @@ ENTRY(machine_check)
|
|||
RING0_INT_FRAME
|
||||
pushl $0
|
||||
CFI_ADJUST_CFA_OFFSET 4
|
||||
pushl $do_machine_check
|
||||
pushl machine_check_vector
|
||||
CFI_ADJUST_CFA_OFFSET 4
|
||||
jmp error_code
|
||||
CFI_ENDPROC
|
||||
|
|
|
@ -931,14 +931,6 @@ do_device_not_available(struct pt_regs *regs, long error)
|
|||
}
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
#ifdef CONFIG_X86_MCE
|
||||
dotraplinkage void __kprobes do_machine_check(struct pt_regs *regs, long error)
|
||||
{
|
||||
conditional_sti(regs);
|
||||
machine_check_vector(regs, error);
|
||||
}
|
||||
#endif
|
||||
|
||||
dotraplinkage void do_iret_error(struct pt_regs *regs, long error_code)
|
||||
{
|
||||
siginfo_t info;
|
||||
|
|
Загрузка…
Ссылка в новой задаче