Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:Maintenance:114
xen.openSUSE_Evergreen_11.4
22949-x86-tolerate-serr.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 22949-x86-tolerate-serr.patch of Package xen.openSUSE_Evergreen_11.4
# HG changeset patch # User Stefano Stabellini <stefano.stabellini@eu.citrix.com> # Date 1298633385 0 # Node ID 54fe1011f86be2ffeaba3b6e883392ea56bbb750 # Parent 2d35823a86e7fbab004125591e56cd14aeaffcb3 x86 NMI: continue in case of PCI SERR erros 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@eu.citrix.com> Index: xen-4.0.3-testing/xen/arch/x86/traps.c =================================================================== --- xen-4.0.3-testing.orig/xen/arch/x86/traps.c +++ xen-4.0.3-testing/xen/arch/x86/traps.c @@ -3066,23 +3066,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) @@ -3145,7 +3134,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 )
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor