Re: [PATCH -v2] x86/boot/compressed: Register dummy NMI handler in EFI boot loader, to avoid kdump crashes

From: Zeng Heng
Date: Tue Jan 10 2023 - 07:50:25 EST



On 2023/1/10 20:34, Ingo Molnar wrote:
* Borislav Petkov <bp@xxxxxxxxx> wrote:

mce_panic -> panic -> __crash_kexec()

Yes?

If so, then we should make sure we have *exited* #MC context before calling
panic() and not have to add hacks like this one of adding an empty NMI handler.

But I'm only speculating as it is hard to make sense of all this text.
IOW, does this help?

---
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 7832a69d170e..55437d8a4fad 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -287,6 +287,7 @@ static noinstr void mce_panic(const char *msg, struct mce *final, char *exp)
if (panic_timeout == 0)
panic_timeout = mca_cfg.panic_timeout;
panic(msg);
+ mce_wrmsrl(MSR_IA32_MCG_STATUS, 0);

I'm willing to test any patch provided, but the panic() is never return and the

mce_wrmsrl() would be never called. Am I wrong?

B.R.,

Zeng Heng

So your suggestion was to exit MC context 'before' the panic() call - but
the patch calls it 'after' - was that intentional?

Thanks,

Ingo