Patch from: Anton Blanchard First one allows IO ranges beginning at 0, its legal. second one increases bus to an int to handle > 256 buses. ugly stuff drivers/pci/probe.c | 2 +- include/linux/pci.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff -puN drivers/pci/probe.c~ppc64-pci-patch drivers/pci/probe.c --- 25/drivers/pci/probe.c~ppc64-pci-patch 2003-03-06 18:37:23.000000000 -0800 +++ 25-akpm/drivers/pci/probe.c 2003-03-06 18:37:23.000000000 -0800 @@ -170,7 +170,7 @@ void __devinit pci_read_bridge_bases(str limit |= (io_limit_hi << 16); } - if (base && base <= limit) { + if (base <= limit) { res->flags = (io_base_lo & PCI_IO_RANGE_TYPE_MASK) | IORESOURCE_IO; res->start = base; res->end = limit + 0xfff; diff -puN include/linux/pci.h~ppc64-pci-patch include/linux/pci.h --- 25/include/linux/pci.h~ppc64-pci-patch 2003-03-06 18:37:23.000000000 -0800 +++ 25-akpm/include/linux/pci.h 2003-03-06 18:37:23.000000000 -0800 @@ -451,10 +451,10 @@ struct pci_bus { void *sysdata; /* hook for sys-specific extension */ struct proc_dir_entry *procdir; /* directory entry in /proc/bus/pci */ - unsigned char number; /* bus number */ - unsigned char primary; /* number of primary bridge */ - unsigned char secondary; /* number of secondary bridge */ - unsigned char subordinate; /* max number of subordinate buses */ + unsigned int number; /* bus number */ + unsigned int primary; /* number of primary bridge */ + unsigned int secondary; /* number of secondary bridge */ + unsigned int subordinate; /* max number of subordinate buses */ char name[48]; _