diff -Nru linux-old/arch/i386/kernel/mpparse.c linux-new/arch/i386/kernel/mpparse.c
--- linux-old/arch/i386/kernel/mpparse.c	2002-10-23 20:58:10.000000000 -0400
+++ linux-new/arch/i386/kernel/mpparse.c	2002-10-23 21:55:14.000000000 -0400
@@ -261,6 +261,11 @@
 	char str[7];
 	int quad;
 
+	if (m->mpc_busid >= MAX_MP_BUSSES) {
+		printk(KERN_ERR "MAX_MP_BUSSES ERROR mpc_busid %d, max %d\n", m->mpc_busid, MAX_MP_BUSSES);
+		return;
+	}
+
 	memcpy(str, m->mpc_bustype, 6);
 	str[6] = 0;
 	
diff -Nru linux-old/include/asm-i386/mpspec.h linux-new/include/asm-i386/mpspec.h
--- linux-old/include/asm-i386/mpspec.h	2002-10-23 20:58:12.000000000 -0400
+++ linux-new/include/asm-i386/mpspec.h	2002-10-23 21:55:48.000000000 -0400
@@ -185,9 +185,10 @@
  *	7	2 CPU MCA+PCI
  */
 
-#define MAX_IRQ_SOURCES 256
+#define MAX_MP_BUSSES 257	/* Need max PCI busses for hotplug + 1 for ISA. */
+				/* Four intrs per PCI slot. */
+#define MAX_IRQ_SOURCES (MAX_MP_BUSSES * 4)
 
-#define MAX_MP_BUSSES 32
 enum mp_bustype {
 	MP_BUS_ISA = 1,
 	MP_BUS_EISA,
