From: Jan Beulich Date: Thu, 17 Jan 2013 12:59:51 +0000 (+0100) Subject: x86: handle both NMI kinds if they occur simultaneously X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~7423 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c7861d0cbc9a140216ecc4cffe871680ba12eb54;p=xen.git x86: handle both NMI kinds if they occur simultaneously We shouldn't assume PCI SERR excludes IOCHK. Once at it, also remove the doubly redundant range restriction on "reason" - the variable already is "unsigned char". Signed-off-by: Jan Beulich Acked-by: Andrew Cooper Acked-by: Keir Fraser --- diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index 7c180ea676..ab4e85e1f5 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -3201,10 +3201,10 @@ void do_nmi(struct cpu_user_regs *regs) reason = inb(0x61); if ( reason & 0x80 ) pci_serr_error(regs); - else if ( reason & 0x40 ) + if ( reason & 0x40 ) io_check_error(regs); - else if ( !nmi_watchdog ) - unknown_nmi_error(regs, (unsigned char)(reason&0xff)); + if ( !(reason & 0xc0) && !nmi_watchdog ) + unknown_nmi_error(regs, reason); } }