Skip to content
Snippets Groups Projects
Commit cd840e42 authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Thomas Gleixner
Browse files

x86/entry, mce: Disallow #DB during #MC

parent fd338e35
No related branches found
No related tags found
No related merge requests found
...@@ -1943,22 +1943,34 @@ static __always_inline void exc_machine_check_user(struct pt_regs *regs) ...@@ -1943,22 +1943,34 @@ static __always_inline void exc_machine_check_user(struct pt_regs *regs)
/* MCE hit kernel mode */ /* MCE hit kernel mode */
DEFINE_IDTENTRY_MCE(exc_machine_check) DEFINE_IDTENTRY_MCE(exc_machine_check)
{ {
unsigned long dr7;
dr7 = local_db_save();
exc_machine_check_kernel(regs); exc_machine_check_kernel(regs);
local_db_restore(dr7);
} }
/* The user mode variant. */ /* The user mode variant. */
DEFINE_IDTENTRY_MCE_USER(exc_machine_check) DEFINE_IDTENTRY_MCE_USER(exc_machine_check)
{ {
unsigned long dr7;
dr7 = local_db_save();
exc_machine_check_user(regs); exc_machine_check_user(regs);
local_db_restore(dr7);
} }
#else #else
/* 32bit unified entry point */ /* 32bit unified entry point */
DEFINE_IDTENTRY_MCE(exc_machine_check) DEFINE_IDTENTRY_MCE(exc_machine_check)
{ {
unsigned long dr7;
dr7 = local_db_save();
if (user_mode(regs)) if (user_mode(regs))
exc_machine_check_user(regs); exc_machine_check_user(regs);
else else
exc_machine_check_kernel(regs); exc_machine_check_kernel(regs);
local_db_restore(dr7);
} }
#endif #endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment