25-akpm/drivers/pci/probe.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff -puN drivers/pci/probe.c~pci-13 drivers/pci/probe.c
--- 25/drivers/pci/probe.c~pci-13	Thu Mar 13 15:49:54 2003
+++ 25-akpm/drivers/pci/probe.c	Thu Mar 13 15:49:54 2003
@@ -15,6 +15,9 @@
 #define DBG(x...)
 #endif
 
+#define CARDBUS_LATENCY_TIMER	176	/* secondary latency timer */
+#define CARDBUS_RESERVE_BUSNR	3
+
 LIST_HEAD(pci_root_buses);
 LIST_HEAD(pci_devices);
 
@@ -336,8 +339,10 @@ int __devinit pci_scan_bridge(struct pci
 		 * yenta.c forces a secondary latency timer of 176.
 		 * Copy that behaviour here.
 		 */
-		if (is_cardbus)
-			buses = (buses & 0x00ffffff) | (176 << 24);
+		if (is_cardbus) {
+			buses &= ~0xff000000;
+			buses |= CARDBUS_LATENCY_TIMER << 24;
+		}
 			
 		/*
 		 * We need to blast all three values with a single write.
@@ -353,7 +358,7 @@ int __devinit pci_scan_bridge(struct pci
 			 * as cards with a PCI-to-PCI bridge can be
 			 * inserted later.
 			 */
-			max += 3;
+			max += CARDBUS_RESERVE_BUSNR;
 		}
 		/*
 		 * Set the subordinate bus number to its real value.

_