[PATCH][2.5] 2.5.21 deadlocks on UP (SMP kernel) w/ IOAPIC (take 2)

Zwane Mwaikambo (zwane@linux.realnet.co.sz)
Sat, 15 Jun 2002 09:46:30 +0200 (SAST)


With the help of Andrew Morton we tracked down the original breakage to
the irq_balance_t declaration which assumes there is a cpu#1

typedef struct {
unsigned int cpu;
unsigned long timestamp;
} ____cacheline_aligned irq_balance_t;

static irq_balance_t irq_balance[NR_IRQS] __cacheline_aligned
= { [ 0 ... NR_IRQS-1 ] = { 1, 0 } };

against 2.5.21, test booted on UP(SMP) w/ IOAPIC and SMP

--- linux-2.5.19/arch/i386/kernel/io_apic.c.orig Fri Jun 14 17:43:20 2002
+++ linux-2.5.19/arch/i386/kernel/io_apic.c Sat Jun 15 10:07:11 2002
@@ -207,7 +207,7 @@
} ____cacheline_aligned irq_balance_t;

static irq_balance_t irq_balance[NR_IRQS] __cacheline_aligned
- = { [ 0 ... NR_IRQS-1 ] = { 1, 0 } };
+ = { [ 0 ... NR_IRQS-1 ] = { 0, 0 } };

extern unsigned long irq_affinity [NR_IRQS];

Linus, i promise this is the last one ;)

Regards,
Zwane Mwaikambo

-- 
http://function.linuxpower.ca

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/