Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7f7f894c authored by Mingarelli, Thomas's avatar Mingarelli, Thomas Committed by Wim Van Sebroeck
Browse files

[WATCHDOG] hpwdt: Fix NMI handling.



I need to just return in case it's not my NMI so someone else can take a look
at it (and reset die_nmi_called to 0 in case I actually do get one that's mine
to handle).

Signed-off-by: default avatarThomas Mingarelli <thomas.mingarelli@hp.com>
Signed-off-by: default avatarWim Van Sebroeck <wim@iguana.be>
parent 93539b19
Loading
Loading
Loading
Loading
+12 −15
Original line number Diff line number Diff line
@@ -418,23 +418,20 @@ static int hpwdt_pretimeout(struct notifier_block *nb, unsigned long ulReason,
	static unsigned long rom_pl;
	static int die_nmi_called;

	if (ulReason != DIE_NMI && ulReason != DIE_NMI_IPI)
		return NOTIFY_OK;

	if (ulReason == DIE_NMI || ulReason == DIE_NMI_IPI) {
		spin_lock_irqsave(&rom_lock, rom_pl);
		if (!die_nmi_called)
			asminline_call(&cmn_regs, cru_rom_addr);
		die_nmi_called = 1;
		spin_unlock_irqrestore(&rom_lock, rom_pl);
	if (cmn_regs.u1.ral == 0) {
		printk(KERN_WARNING "hpwdt: An NMI occurred, "
		       "but unable to determine source.\n");
	} else {
		if (cmn_regs.u1.ral != 0) {
			panic("An NMI occurred, please see the Integrated "
			      "Management Log for details.\n");
		}
	}

	return NOTIFY_STOP;
	die_nmi_called = 0;
	return NOTIFY_DONE;
}

/*