2001-10-10 02:04:17

by Sam Varshavchik

[permalink] [raw]
Subject: [BUG] [PATCH] Infinite loop in arch/i386/kernel/io_apic.c

*** linux/arch/i386/kernel/io_apic.c.orig Tue Oct 9 21:11:10 2001
--- linux/arch/i386/kernel/io_apic.c Tue Oct 9 21:13:03 2001
***************
*** 1248,1261 ****
ack_APIC_irq();

if (!(v & (1 << (i & 0x1f)))) {
#ifdef APIC_MISMATCH_DEBUG
atomic_inc(&irq_mis_count);
#endif
spin_lock(&ioapic_lock);
__mask_and_edge_IO_APIC_irq(irq);
#ifdef APIC_LOCKUP_DEBUG
! for (;;) {
! struct irq_pin_list *entry = irq_2_pin + irq;
unsigned int reg;

if (entry->pin == -1)
--- 1248,1264 ----
ack_APIC_irq();

if (!(v & (1 << (i & 0x1f)))) {
+ #ifdef APIC_LOCKUP_DEBUG
+ struct irq_pin_list *entry;
+ #endif
+
#ifdef APIC_MISMATCH_DEBUG
atomic_inc(&irq_mis_count);
#endif
spin_lock(&ioapic_lock);
__mask_and_edge_IO_APIC_irq(irq);
#ifdef APIC_LOCKUP_DEBUG
! for (entry = irq_2_pin + irq;;) {
unsigned int reg;

if (entry->pin == -1)


Attachments:
linux-2.4.6-ioapicdebugfix.patch (906.00 B)