Commit e10be03f authored by Borislav Petkov's avatar Borislav Petkov

GHES: Carve out the panic functionality

... into another function for more clarity. No functionality change.
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
parent 11568496
...@@ -823,6 +823,18 @@ static void __process_error(struct ghes *ghes) ...@@ -823,6 +823,18 @@ static void __process_error(struct ghes *ghes)
#endif #endif
} }
static void __ghes_panic(struct ghes *ghes)
{
oops_begin();
ghes_print_queued_estatus();
__ghes_print_estatus(KERN_EMERG, ghes->generic, ghes->estatus);
/* reboot to log the error! */
if (panic_timeout == 0)
panic_timeout = ghes_panic_timeout;
panic("Fatal hardware error!");
}
static int ghes_notify_nmi(unsigned int cmd, struct pt_regs *regs) static int ghes_notify_nmi(unsigned int cmd, struct pt_regs *regs)
{ {
struct ghes *ghes, *ghes_global = NULL; struct ghes *ghes, *ghes_global = NULL;
...@@ -846,16 +858,8 @@ static int ghes_notify_nmi(unsigned int cmd, struct pt_regs *regs) ...@@ -846,16 +858,8 @@ static int ghes_notify_nmi(unsigned int cmd, struct pt_regs *regs)
if (ret == NMI_DONE) if (ret == NMI_DONE)
goto out; goto out;
if (sev_global >= GHES_SEV_PANIC) { if (sev_global >= GHES_SEV_PANIC)
oops_begin(); __ghes_panic(ghes_global);
ghes_print_queued_estatus();
__ghes_print_estatus(KERN_EMERG, ghes_global->generic,
ghes_global->estatus);
/* reboot to log the error! */
if (panic_timeout == 0)
panic_timeout = ghes_panic_timeout;
panic("Fatal hardware error!");
}
list_for_each_entry_rcu(ghes, &ghes_nmi, list) { list_for_each_entry_rcu(ghes, &ghes_nmi, list) {
if (!(ghes->flags & GHES_TO_CLEAR)) if (!(ghes->flags & GHES_TO_CLEAR))
......
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