diff options
Diffstat (limited to 'trunk/2.6.22/20007_i386-mach-io-check-nmi.patch1')
-rw-r--r-- | trunk/2.6.22/20007_i386-mach-io-check-nmi.patch1 | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/trunk/2.6.22/20007_i386-mach-io-check-nmi.patch1 b/trunk/2.6.22/20007_i386-mach-io-check-nmi.patch1 new file mode 100644 index 0000000..c6fccf6 --- /dev/null +++ b/trunk/2.6.22/20007_i386-mach-io-check-nmi.patch1 @@ -0,0 +1,53 @@ +Subject: Separate out clearing of NMI I/O check error +From: http://xenbits.xensource.com/xen-3.1-testing.hg (tip 15042) +Patch-mainline: obsolete +Acked-by: jbeulich@novell.com + +--- + arch/i386/kernel/traps.c | 9 +-------- + include/asm-i386/mach-default/mach_traps.h | 12 ++++++++++++ + 2 files changed, 13 insertions(+), 8 deletions(-) + +--- a/arch/i386/kernel/traps.c 2007-08-27 14:01:24.000000000 -0400 ++++ b/arch/i386/kernel/traps.c 2007-08-27 14:01:24.000000000 -0400 +@@ -656,18 +656,11 @@ mem_parity_error(unsigned char reason, s + static __kprobes void + io_check_error(unsigned char reason, struct pt_regs * regs) + { +- unsigned long i; +- + printk(KERN_EMERG "NMI: IOCK error (debug interrupt?)\n"); + show_registers(regs); + + /* Re-enable the IOCK line, wait for a few seconds */ +- reason = (reason & 0xf) | 8; +- outb(reason, 0x61); +- i = 2000; +- while (--i) udelay(1000); +- reason &= ~8; +- outb(reason, 0x61); ++ clear_io_check_error(reason); + } + + static __kprobes void +--- a/include/asm-i386/mach-default/mach_traps.h 2007-08-27 12:09:26.000000000 -0400 ++++ b/include/asm-i386/mach-default/mach_traps.h 2007-08-27 14:01:24.000000000 -0400 +@@ -15,6 +15,18 @@ static inline void clear_mem_error(unsig + outb(reason, 0x61); + } + ++static inline void clear_io_check_error(unsigned char reason) ++{ ++ unsigned long i; ++ ++ reason = (reason & 0xf) | 8; ++ outb(reason, 0x61); ++ i = 2000; ++ while (--i) udelay(1000); ++ reason &= ~8; ++ outb(reason, 0x61); ++} ++ + static inline unsigned char get_nmi_reason(void) + { + return inb(0x61); |