ia64/xen-unstable

view patches/linux-2.6.12/i386-mach-io-check-nmi.patch @ 8697:11ed48af31d7

Ever since patchset 8648 (xen-unstable.hg) all my configuration files
fail with the following:

Error: Device 768 (vbd) could not be connected. Hotplug scripts not working.

(Since my HVM tree follows xen-unstable.hg closely, it breaks too).

The following patch undoes a small part of Ke Yu's patch and fixes the
problem.

However, I'm having trouble understanding what this part did in the
original patch. Was there a subtle change in the disk variable format
that I missed?

Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com>
author kaf24@firebug.cl.cam.ac.uk
date Sun Jan 29 10:52:43 2006 +0100 (2006-01-29)
parents 8bcfcfc13e21
children
line source
1 --- ref-linux-2.6.12/arch/i386/kernel/traps.c 2005-12-19 09:23:44.000000000 +0000
2 +++ linux-2.6.12-xen0/arch/i386/kernel/traps.c 2006-01-05 15:51:52.000000000 +0000
3 @@ -521,18 +521,11 @@
5 static void io_check_error(unsigned char reason, struct pt_regs * regs)
6 {
7 - unsigned long i;
8 -
9 printk("NMI: IOCK error (debug interrupt?)\n");
10 show_registers(regs);
12 /* Re-enable the IOCK line, wait for a few seconds */
13 - reason = (reason & 0xf) | 8;
14 - outb(reason, 0x61);
15 - i = 2000;
16 - while (--i) udelay(1000);
17 - reason &= ~8;
18 - outb(reason, 0x61);
19 + clear_io_check_error(reason);
20 }
22 static void unknown_nmi_error(unsigned char reason, struct pt_regs * regs)
23 --- ref-linux-2.6.12/include/asm-i386/mach-default/mach_traps.h 2005-06-17 20:48:29.000000000 +0100
24 +++ linux-2.6.12-xen0/include/asm-i386/mach-default/mach_traps.h 2006-01-05 15:52:33.000000000 +0000
25 @@ -15,6 +15,18 @@
26 outb(reason, 0x61);
27 }
29 +static inline void clear_io_check_error(unsigned char reason)
30 +{
31 + unsigned long i;
32 +
33 + reason = (reason & 0xf) | 8;
34 + outb(reason, 0x61);
35 + i = 2000;
36 + while (--i) udelay(1000);
37 + reason &= ~8;
38 + outb(reason, 0x61);
39 +}
40 +
41 static inline unsigned char get_nmi_reason(void)
42 {
43 return inb(0x61);