On Wed, Mar 28, 2018 at 05:30:55PM +0100, James Morse wrote: > -----------------%<----------------- > ACPI / APEI: don't wait to serialise with oops messages when panic()ing > > oops_begin() exists to group printk() messages with the oops message > printed by die(). To reach this caller we know that platform firmware > took this error first, then notified the OS via NMI with a 'panic' > severity. > > Don't wait for another CPU to release the die-lock before we can > panic(), our only goal is to print this fatal error and panic(). > > This code is always called in_nmi(), and since 42a0bb3f7138 ("printk/nmi: > generic solution for safe printk in NMI"), it has been safe to call > printk() from this context. Messages are batched in a per-cpu buffer > and printed via irq-work, or a call back from panic(). > > Signed-off-by: James Morse <james.morse@xxxxxxx> > > diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c > index 22f6ea5b9ad5..f348e6540960 100644 > --- a/drivers/acpi/apei/ghes.c > +++ b/drivers/acpi/apei/ghes.c > @@ -34,7 +34,6 @@ > #include <linux/interrupt.h> > #include <linux/timer.h> > #include <linux/cper.h> > -#include <linux/kdebug.h> > #include <linux/platform_device.h> > #include <linux/mutex.h> > #include <linux/ratelimit.h> > @@ -736,9 +735,6 @@ static int _in_nmi_notify_one(struct ghes *ghes) > > sev = ghes_severity(ghes->estatus->error_severity); > if (sev >= GHES_SEV_PANIC) { > -#ifdef CONFIG_X86 > - oops_begin(); > -#endif > ghes_print_queued_estatus(); > __ghes_panic(ghes); > } > -----------------%<----------------- Acked-by: Borislav Petkov <bp@xxxxxxx> -- Regards/Gruss, Boris. Good mailing practices for 400: avoid top-posting and trim the reply. -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html