x86, NMI: Clean-up default_do_nmi()
authorDon Zickus <dzickus@redhat.com>
Thu, 6 Jan 2011 21:18:52 +0000 (16:18 -0500)
committerIngo Molnar <mingo@elte.hu>
Fri, 7 Jan 2011 14:08:53 +0000 (15:08 +0100)
Just re-arrange the code a bit to make it easier to follow what is
going on.  Basically un-negating the if-statement and swapping the code
inside the if-statement with code outside.

No functional changes.

Originally-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Don Zickus <dzickus@redhat.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1294348732-15030-7-git-send-email-dzickus@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/traps.c

index 613b3d2..b9b6716 100644 (file)
@@ -410,26 +410,24 @@ static notrace __kprobes void default_do_nmi(struct pt_regs *regs)
        raw_spin_lock(&nmi_reason_lock);
        reason = get_nmi_reason();
 
-       if (!(reason & NMI_REASON_MASK)) {
+       if (reason & NMI_REASON_MASK) {
+               if (reason & NMI_REASON_SERR)
+                       pci_serr_error(reason, regs);
+               else if (reason & NMI_REASON_IOCHK)
+                       io_check_error(reason, regs);
+#ifdef CONFIG_X86_32
+               /*
+                * Reassert NMI in case it became active
+                * meanwhile as it's edge-triggered:
+                */
+               reassert_nmi();
+#endif
                raw_spin_unlock(&nmi_reason_lock);
-               unknown_nmi_error(reason, regs);
-
                return;
        }
-
-       /* AK: following checks seem to be broken on modern chipsets. FIXME */
-       if (reason & NMI_REASON_SERR)
-               pci_serr_error(reason, regs);
-       if (reason & NMI_REASON_IOCHK)
-               io_check_error(reason, regs);
-#ifdef CONFIG_X86_32
-       /*
-        * Reassert NMI in case it became active meanwhile
-        * as it's edge-triggered:
-        */
-       reassert_nmi();
-#endif
        raw_spin_unlock(&nmi_reason_lock);
+
+       unknown_nmi_error(reason, regs);
 }
 
 dotraplinkage notrace __kprobes void