Messages in this thread Patch in this message | | | Date | Wed, 25 Jun 1997 13:15:37 -0400 (EDT) | From | "Richard B. Johnson" <> | Subject | IRQ Patch |
| |
Linus,
The following patch fixes a problem with '386SX/16 machines where the CPU stops being interrupted so the machine halts.
I have tested this on two 386SXs, 12 486-DX/66, 2 Pentium 166s, and one dual Pentium 166 running SMP.
Several others in the linux-kernel group have tested this with no ill effects. In other words, it doesn't seem to break anything.
It sends a specific EOI to the cascade, instead of the non-specific.
It patches cleanly in the current kernel. I think it should be used in the current distribution.
--- /usr/src/linux/arch/i386/kernel/irq.c.orig Mon Jun 9 07:57:15 1997 +++ /usr/src/linux/arch/i386/kernel/irq.c Mon Jun 9 08:02:14 1997 @@ -82,12 +82,13 @@ if (irq_nr & 8) { inb(0xA1); /* DUMMY */ outb(cached_A1,0xA1); + outb(0x62,0x20); /* Specific EOI to cascade */ outb(0x20,0xA0); } else { inb(0x21); /* DUMMY */ outb(cached_21,0x21); + outb(0x20,0x20); } - outb(0x20,0x20); spin_unlock(&irq_controller_lock); } Cheers, DJ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Richard B. Johnson Analogic Corporation Email : rjohnson@analogic.com, johnson@analogic.com Penguin : Linux version 2.1.44 on an i586 machine (66.15 BogoMips). Warning : It's hard to stay on the trailing edge of technology. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
| |