From: James Cleverdon <jamesclv@us.ibm.com>

Some very large systems overflow the array and corrupt memory.  A BUG_ON will 
at least flag the problem until dynamic irq_vector allocation is added.



 25-akpm/arch/i386/kernel/io_apic.c |    1 +
 1 files changed, 1 insertion(+)

diff -puN arch/i386/kernel/io_apic.c~irq-vector-overflow-check arch/i386/kernel/io_apic.c
--- 25/arch/i386/kernel/io_apic.c~irq-vector-overflow-check	Fri Sep 12 13:00:37 2003
+++ 25-akpm/arch/i386/kernel/io_apic.c	Fri Sep 12 13:00:37 2003
@@ -1143,6 +1143,7 @@ int irq_vector[NR_IRQS] = { FIRST_DEVICE
 static int __init assign_irq_vector(int irq)
 {
 	static int current_vector = FIRST_DEVICE_VECTOR, offset = 0;
+	BUG_ON(irq >= NR_IRQS);
 	if (IO_APIC_VECTOR(irq) > 0)
 		return IO_APIC_VECTOR(irq);
 next:

_