Commit 2cadf524 authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Borislav Petkov

x86/extable: Provide EX_TYPE_DEFAULT_MCE_SAFE and EX_TYPE_FAULT_MCE_SAFE

Provide exception fixup types which can be used to identify fixups which
allow in kernel #MC recovery and make them invoke the existing handlers.

These will be used at places where #MC recovery is handled correctly by the
caller.
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20210908132525.269689153@linutronix.de
parent 46d28947
...@@ -16,4 +16,7 @@ ...@@ -16,4 +16,7 @@
#define EX_TYPE_WRMSR_IN_MCE 10 #define EX_TYPE_WRMSR_IN_MCE 10
#define EX_TYPE_RDMSR_IN_MCE 11 #define EX_TYPE_RDMSR_IN_MCE 11
#define EX_TYPE_DEFAULT_MCE_SAFE 12
#define EX_TYPE_FAULT_MCE_SAFE 13
#endif #endif
...@@ -278,6 +278,8 @@ static int error_context(struct mce *m, struct pt_regs *regs) ...@@ -278,6 +278,8 @@ static int error_context(struct mce *m, struct pt_regs *regs)
m->kflags |= MCE_IN_KERNEL_COPYIN; m->kflags |= MCE_IN_KERNEL_COPYIN;
fallthrough; fallthrough;
case EX_TYPE_FAULT: case EX_TYPE_FAULT:
case EX_TYPE_FAULT_MCE_SAFE:
case EX_TYPE_DEFAULT_MCE_SAFE:
m->kflags |= MCE_IN_KERNEL_RECOV; m->kflags |= MCE_IN_KERNEL_RECOV;
return IN_KERNEL_RECOV; return IN_KERNEL_RECOV;
default: default:
......
...@@ -131,8 +131,10 @@ int fixup_exception(struct pt_regs *regs, int trapnr, unsigned long error_code, ...@@ -131,8 +131,10 @@ int fixup_exception(struct pt_regs *regs, int trapnr, unsigned long error_code,
switch (e->type) { switch (e->type) {
case EX_TYPE_DEFAULT: case EX_TYPE_DEFAULT:
case EX_TYPE_DEFAULT_MCE_SAFE:
return ex_handler_default(e, regs); return ex_handler_default(e, regs);
case EX_TYPE_FAULT: case EX_TYPE_FAULT:
case EX_TYPE_FAULT_MCE_SAFE:
return ex_handler_fault(e, regs, trapnr); return ex_handler_fault(e, regs, trapnr);
case EX_TYPE_UACCESS: case EX_TYPE_UACCESS:
return ex_handler_uaccess(e, regs, trapnr); return ex_handler_uaccess(e, regs, trapnr);
......
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