All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] clear IOCK NMI before panic
       [not found] <511C8084.9000604@miraclelinux.com>
@ 2013-02-15  1:52 ` Naohiro Ooiwa
  0 siblings, 0 replies; only message in thread
From: Naohiro Ooiwa @ 2013-02-15  1:52 UTC (permalink / raw)
  To: linux-kernel; +Cc: Kurt Garloff, Roberto Angelino, Greg Kroah-Hartman, mingo

Hi all

I tried to push an NMI button on HP DL380p Gen8's iLO4.
and then I received an IOCK NMI error.
When panic_on_io_nmi is set to 0, it seems that IOCK NMI error is sent repeatedly.

In case of panic_on_io_nmi=1 and kdump is available,
the second kernel started. But IOCK NMI is sent repeatedly
and second kernel couldn't take a dump.

Though this is just my guess,
We should clear the IOCK of NMI reason before panic().

I tried to create a patch, which works for me.
Is my patch reasonable?


Thanks you.
Naohiro Ooiwa


Signed-off-by: Naohiro Ooiwa <naohiro.ooiwa@miraclelinux.com>
---
 arch/x86/kernel/nmi.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c
index f84f5c5..c3cbfbe 100644
--- a/arch/x86/kernel/nmi.c
+++ b/arch/x86/kernel/nmi.c
@@ -209,8 +209,11 @@ io_check_error(unsigned char reason, struct pt_regs *regs)
 		 reason, smp_processor_id());
 	show_regs(regs);

-	if (panic_on_io_nmi)
+	if (panic_on_io_nmi) {
+		reason = (reason & NMI_REASON_CLEAR_MASK) | NMI_REASON_CLEAR_IOCHK;
+		outb(reason, NMI_REASON_PORT);
 		panic("NMI IOCK error: Not continuing");
+	}

 	/* Re-enable the IOCK line, wait for a few seconds */
 	reason = (reason & NMI_REASON_CLEAR_MASK) | NMI_REASON_CLEAR_IOCHK;
-- 
1.7.10.4






^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2013-02-15  1:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <511C8084.9000604@miraclelinux.com>
2013-02-15  1:52 ` [PATCH] clear IOCK NMI before panic Naohiro Ooiwa

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.