WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] NMI: continue in case of PCI SERR erros

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] NMI: continue in case of PCI SERR erros
From: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Date: Fri, 25 Feb 2011 10:53:54 +0000
Delivery-date: Fri, 25 Feb 2011 02:54:20 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Alpine 2.00 (DEB 1167 2008-08-23)
Memory parity error is only valid for IBM PC-AT, newer machines use
bit 7 (0x80) of 0x61 port for PCI SERR. While memory errors are
usually reported via MCE.

Rename the memory parity error handler to pci serr handler and
print a warning and continue instead of crashing.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>

---

diff -r 598d1fc295b6 xen/arch/x86/traps.c
--- a/xen/arch/x86/traps.c      Thu Feb 24 09:33:19 2011 +0000
+++ b/xen/arch/x86/traps.c      Fri Feb 25 10:37:47 2011 +0000
@@ -3075,23 +3075,12 @@ static void nmi_dom0_report(unsigned int
     send_guest_trap(d, 0, TRAP_nmi);
 }
 
-static void mem_parity_error(struct cpu_user_regs *regs)
+static void pci_serr_error(struct cpu_user_regs *regs)
 {
-    switch ( opt_nmi[0] )
-    {
-    case 'd': /* 'dom0' */
-        nmi_dom0_report(_XEN_NMIREASON_parity_error);
-    case 'i': /* 'ignore' */
-        break;
-    default:  /* 'fatal' */
-        console_force_unlock();
-        printk("\n\nNMI - MEMORY ERROR\n");
-        fatal_trap(TRAP_nmi, regs);
-    }
+    console_force_unlock();
+    printk("\n\nNMI - PCI system error (SERR)\n");
 
-    outb((inb(0x61) & 0x0f) | 0x04, 0x61); /* clear-and-disable parity check */
-    mdelay(1);
-    outb((inb(0x61) & 0x0b) | 0x00, 0x61); /* enable parity check */
+    outb((inb(0x61) & 0x0f) | 0x04, 0x61); /* clear-and-disable the PCI SERR 
error line. */
 }
 
 static void io_check_error(struct cpu_user_regs *regs)
@@ -3154,7 +3143,7 @@ asmlinkage void do_nmi(struct cpu_user_r
     {
         reason = inb(0x61);
         if ( reason & 0x80 )
-            mem_parity_error(regs);
+            pci_serr_error(regs);
         else if ( reason & 0x40 )
             io_check_error(regs);
         else if ( !nmi_watchdog )

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel