Yet more PCI fixes for 2.5.70
Subsystems (3)
PATCH 1/1 Yet more PCI fixes for 2.5.70
Hi,
Here's some more PCI changes against the latest 2.5.70 bk tree. They contain the following:
- remove almost all usages of pci_present(). There are only 2 users of this function left, and I'll continue to work to remove them.
- add sysfs support for pci domains. This is from Matthew Wilcox, and is a bit different from the last patch he sent to lkml. This one supports sparc64 and ppc64 and has been blessed by David Miller.
- updated pci pool CONFIG_DEBUG_SLAB logic
- removed pci_for_each_bus() macro, and added a pci_find_next_bus() function to prevent people from directly walking the PCI bus lists.
Please pull from:
bk://kernel.bkbits.net/gregkh/linux/pci-2.5
thanks,
greg k-h
p.s. I'll send these as patches in response to this email to lkml for those who want to see them.
arch/alpha/Kconfig | 4 + arch/alpha/kernel/pci.c | 8 -- arch/i386/pci/common.c | 6 - arch/ia64/Kconfig | 4 + arch/ia64/hp/common/sba_iommu.c | 6 - arch/ia64/pci/pci.c | 4 - arch/ppc/Kconfig | 4 + arch/ppc/kernel/pci.c | 10 --- arch/ppc64/Kconfig | 4 + arch/ppc64/kernel/pci.c | 6 - arch/sparc/kernel/ebus.c | 3 arch/sparc64/Kconfig | 4 + arch/sparc64/kernel/ebus.c | 3 arch/sparc64/kernel/pci.c | 6 - drivers/atm/ambassador.c | 3 drivers/atm/fore200e.c | 5 - drivers/atm/nicstar.c | 5 - drivers/char/epca.c | 13 ---- drivers/char/ip2main.c | 58 ++++++++---------- drivers/char/isicom.c | 2 drivers/char/istallion.c | 3 drivers/char/rio/rio_linux.c | 3 drivers/char/rocket.c | 8 -- drivers/char/specialix.c | 2 drivers/char/stallion.c | 3 drivers/char/sx.c | 116 ++++++++++++++++++------------------ drivers/i2c/i2c-elektor.c | 2 drivers/ide/ide.c | 5 - drivers/isdn/eicon/Divas_mod.c | 12 --- drivers/isdn/hysdn/hysdn_init.c | 4 - drivers/media/radio/radio-maestro.c | 2 drivers/mtd/devices/pmc551.c | 5 - drivers/net/acenic.c | 3 drivers/net/dgrs.c | 80 +++++++++++------------- drivers/net/fc/iph5526.c | 6 - drivers/net/hp100.c | 6 + drivers/net/saa9730.c | 39 +++++------- drivers/net/sk98lin/skge.c | 3 drivers/net/skfp/skfddi.c | 4 - drivers/net/tc35815.c | 3 drivers/net/tulip/de4x5.c | 6 - drivers/net/wan/lmc/lmc_main.c | 8 -- drivers/net/wan/lmc/lmc_ver.h | 2 drivers/net/wan/sbni.c | 3 drivers/net/wan/sdladrv.c | 8 -- drivers/pci/pci.c | 4 - drivers/pci/pool.c | 12 ++- drivers/pci/power.c | 18 +---- drivers/pci/probe.c | 3 drivers/pci/proc.c | 24 +++---- drivers/pci/search.c | 25 ++++++- drivers/pci/syscall.c | 2 drivers/scsi/3w-xxxx.c | 6 - drivers/scsi/BusLogic.c | 3 drivers/scsi/aic7xxx_old.c | 3 drivers/scsi/atp870u.c | 4 - drivers/scsi/cpqfcTSinit.c | 6 - drivers/scsi/dmx3191d.c | 6 - drivers/scsi/eata.c | 6 - drivers/scsi/gdth.c | 4 - drivers/scsi/inia100.c | 2 drivers/scsi/pci2000.c | 7 -- drivers/scsi/pci2220i.c | 6 - drivers/scsi/qla1280.c | 6 - drivers/scsi/qlogicfc.c | 5 - drivers/scsi/qlogicisp.c | 5 - drivers/scsi/sym53c8xx.c | 8 -- drivers/scsi/sym53c8xx_2/sym_glue.c | 6 - drivers/scsi/sym53c8xx_comm.h | 8 -- drivers/scsi/tmscsim.c | 2 drivers/telephony/ixj.c | 9 -- drivers/video/pm2fb.c | 4 - include/asm-alpha/pci.h | 5 - include/asm-arm/pci.h | 8 -- include/asm-h8300/pci.h | 3 include/asm-i386/pci.h | 6 - include/asm-ia64/pci.h | 5 - include/asm-m68k/pci.h | 3 include/asm-mips/pci.h | 3 include/asm-mips64/pci.h | 5 - include/asm-parisc/pci.h | 3 include/asm-ppc/pci-bridge.h | 2 include/asm-ppc/pci.h | 2 include/asm-ppc64/pci.h | 3 include/asm-sh/pci.h | 3 include/asm-sparc/pci.h | 3 include/asm-sparc64/parport.h | 3 include/asm-sparc64/pci.h | 2 include/asm-v850/rte_cb.h | 1 include/asm-x86_64/pci.h | 6 - include/linux/pci.h | 14 +++- sound/oss/cmpci.c | 4 - sound/oss/cs4281/cs4281m.c | 5 - sound/oss/cs46xx.c | 5 - sound/oss/es1370.c | 2 sound/oss/es1371.c | 2 sound/oss/esssolo1.c | 2 sound/oss/i810_audio.c | 3 sound/oss/ite8172.c | 2 sound/oss/maestro3.c | 3 sound/oss/nec_vrc5477.c | 2 sound/oss/rme96xx.c | 3 sound/oss/skeleton.c | 4 - sound/oss/sonicvibes.c | 2 sound/oss/trident.c | 3 105 files changed, 272 insertions(+), 538 deletions(-)
-----
David Brownell:
o PCI: pci pool, poison more like slab code
Greg Kroah-Hartman:
o PCI: remove some pci_bus_b() calls in drivers/pci/power.c
o PCI: remove pci_bus_b() call in arch/i386/pci/common.c
o PCI: remove pci_for_each_bus() macro as there are now no more users of it
o PCI: remove pci_for_each_bus() usage from drivers/pci/pci.c
o PCI: remove pci_for_each_bus() usage from arch/ia64/hp/common/sba_iommu.c
o PCI: add pci_find_next_bus() function to prevent people from walking pci bus lists themselves
o PCI: remove pci_present() from sound/oss/trident.c
o PCI: remove pci_present() from sound/oss/sonicvibes.c
o PCI: remove pci_present() from sound/oss/skeleton.c
o PCI: remove pci_present() from sound/oss/rme96xx.c
o PCI: remove pci_present() from sound/oss/nec_vrc5477.c
o PCI: remove pci_present() from sound/oss/maestro3.c
o PCI: remove pci_present() from sound/oss/ite8172.c
o PCI: remove pci_present() from sound/oss/i810_audio.c
o PCI: remove pci_present() from sound/oss/esssolo1.c
o PCI: remove pci_present() from sound/oss/es1371.c
o PCI: remove pci_present() from sound/oss/es1370.c
o PCI: remove pci_present() from sound/oss/cs46xx.c
o PCI: remove pci_present() from sound/oss/cs4281/cs4281m.c
o PCI: remove pci_present() from sound/oss/cmpci.c
o PCI: remove pci_present() from include/asm-sparc64/parport.h
o PCI: remove pci_present() from drivers/video/pm2fb.c
o PCI: remove pci_present() from drivers/telephony/ixj.c
o PCI: remove pci_present() from drivers/scsi/tmscsim.c
o PCI: remove pci_present() from drivers/scsi/sym53c8xx_comm.h
o PCI: remove pci_present() from drivers/scsi/sym53c8xx_2/sym_glue.c
o PCI: remove pci_present() from drivers/scsi/sym53c8xx.c
o PCI: remove pci_present() from drivers/scsi/qlogicisp.c
o PCI: remove pci_present() from drivers/scsi/qlogicfc.c
o PCI: remove pci_present() from drivers/scsi/qla1280.c
o PCI: remove pci_present() from drivers/scsi/pci2220i.c
o PCI: remove pci_present() from drivers/scsi/pci2000.c
o PCI: remove pci_present() from drivers/scsi/inia100.c
o PCI: remove pci_present() from drivers/scsi/gdth.c
o PCI: remove pci_present() from drivers/scsi/eata.c
o PCI: remove pci_present() from drivers/scsi/dmx3191d.c
o PCI: remove pci_present() from drivers/scsi/cpqfcTSinit.c
o PCI: remove pci_present() from drivers/scsi/atp870u.c
o PCI: remove pci_present() from drivers/scsi/aic7xxx_old.c
o PCI: remove pci_present() from drivers/scsi/BusLogic.c
o PCI: remove pci_present() from drivers/scsi/3w-xxxx.c
o PCI: remove pci_present() from drivers/pci/syscall.c
o PCI: remove pci_present() from drivers/pci/proc.c
o PCI: remove pci_present() from drivers/net/wan/sdladrv.c
o PCI: remove pci_present() from drivers/net/wan/sbni.c
o PCI: remove pci_present() from drivers/net/wan/lmc/lmc_main.c
o PCI: remove pci_present() from drivers/net/tulip/de4x5.c
o PCI: remove pci_present() from drivers/net/tc35815.c
o PCI: remove pci_present() from drivers/net/skfp/skfddi.c
o PCI: remove pci_present() from drivers/net/sk98lin/skge.c
o PCI: remove pci_present() from drivers/net/saa9730.c
o PCI: remove pci_present() from drivers/net/hp100.c
o PCI: remove pci_present() from drivers/net/fc/iph5526.c
o PCI: remove pci_present() from drivers/net/dgrs.c
o PCI: remove pci_present() from drivers/net/acenic.c
o PCI: remove pci_present() from drivers/mtd/devices/pmc551.c
o PCI: remove pci_present() from drivers/media/radio/radio-maestro.c
o PCI: remove pci_present() from drivers/isdn/hysdn/hysdn_init.c
o PCI: remove pci_present() from drivers/isdn/eicon/Divas_mod.c
o PCI: remove pci_present() from drivers/ide/ide.c
o PCI: remove pci_present() from drivers/i2c/i2c-elektor.c
o PCI: remove pci_present() from drivers/char/sx.c
o PCI: remove pci_present() from drivers/char/stallion.c
o PCI: remove pci_present() from drivers/char/specialix.c
o PCI: remove pci_present() from drivers/char/rocket.c
o PCI: remove pci_present() from drivers/char/rio/rio_linux.c
o PCI: remove pci_present() from drivers/char/istallion.c
o PCI: remove pci_present() from drivers/char/isicom.c
o PCI: remove pci_present() from drivers/char/ip2main.c
o PCI: remove pci_present() from drivers/char/epca.c
o PCI: remove pci_present() from drivers/atm/nicstar.c
o PCI: remove pci_present() from drivers/atm/fore200e.c
o PCI: remove pci_present() from drivers/atm/ambassador.c
o PCI: remove pci_present() from arch/sparc64/kernel/ebus.c
o PCI: remove pci_present() from arch/sparc/kernel/ebus.c
Matthew Wilcox:
o PCI: domain support for sysfs
PATCH 1/1 Yet more PCI fixes for 2.5.70
ChangeSet 1.1316, 2003/06/09 15:27:00-07:00, [email protected]
PCI: remove pci_present() from arch/sparc/kernel/ebus.c
arch/sparc/kernel/ebus.c | 3 --- 1 files changed, 3 deletions(-)
arch/sparc/kernel/ebus.c +0 -3
@@ -267,9 +267,6 @@int reg, nreg;int num_ebus =0 ; -if (!pci_present ()) -return ; -prom_getstring (prom_root_node,"name" , lbuf,sizeof (lbuf));for (sp = ebus_blacklist; sp->esname !=NULL ; sp++) {if (strcmp (lbuf, sp->esname) ==0 ) {
ChangeSet 1.1317, 2003/06/09 15:29:23-07:00, [email protected]
PCI: remove pci_present() from arch/sparc64/kernel/ebus.c
arch/sparc64/kernel/ebus.c | 3 --- 1 files changed, 3 deletions(-)
arch/sparc64/kernel/ebus.c +0 -3
@@ -525,9 +525,6 @@int nd, ebusnd, is_rio;int num_ebus =0 ; -if (!pci_present ()) -return ; - pdev =find_next_ebus (NULL , &is_rio);if (!pdev) {printk ("ebus: No EBus's found.\n" );
ChangeSet 1.1318, 2003/06/09 15:29:58-07:00, [email protected]
PCI: remove pci_present() from drivers/atm/ambassador.c
drivers/atm/ambassador.c | 3 --- 1 files changed, 3 deletions(-)
drivers/atm/ambassador.c +0 -3
@@ -2509,9 +2509,6 @@PRINTD (DBG_FLOW ,"amb_probe" ); -if (!pci_present ()) -return 0 ; - devs =0 ; pci_dev =NULL ; while ((pci_dev = pci_find_device
ChangeSet 1.1319, 2003/06/09 15:30:39-07:00, [email protected]
PCI: remove pci_present() from drivers/atm/fore200e.c
drivers/atm/fore200e.c | 5 ----- 1 files changed, 5 deletions(-)
drivers/atm/fore200e.c +0 -5
@@ -633,11 +633,6 @@struct pci_dev * pci_dev =NULL ;int count = index; -if (pci_present () ==0 ) { -printk (FORE200E "no PCI subsystem\n" ); -return NULL ; - } - do { pci_dev = pci_find_device(PCI_VENDOR_ID_FORE, PCI_DEVICE_ID_FORE_PCA200E, pci_dev); if (pci_dev == NULL)
ChangeSet 1.1320, 2003/06/09 15:31:07-07:00, [email protected]
PCI: remove pci_present() from drivers/atm/nicstar.c
drivers/atm/nicstar.c | 5 ----- 1 files changed, 5 deletions(-)
drivers/atm/nicstar.c +0 -5
@@ -283,11 +283,6 @@struct pci_dev *pcidev;XPRINTK ("nicstar: nicstar_module_init() called.\n" ); -if (!pci_present ()) - { -printk ("nicstar: no PCI subsystem found.\n" ); -return -EIO ; - }for (i =0 ; i <NS_MAX_CARDS ; i++) cards[i] =NULL ;
ChangeSet 1.1321, 2003/06/09 15:31:49-07:00, [email protected]
PCI: remove pci_present() from drivers/char/epca.c
drivers/char/epca.c | 13 +++---------- 1 files changed, 3 insertions(+), 10 deletions(-)
drivers/char/epca.c +3 -10
@@ -1639,16 +1639,9 @@--------------------------------------------------------------------- */ pci_boards_found =0 ; -if (pci_present ()) - { -if (num_cards <MAXBOARDS ) - pci_boards_found +=init_PCI (); - num_cards += pci_boards_found; - } -else - { -printk (KERN_ERR "<Error> - No PCI BIOS found\n" ); - } +if (num_cards <MAXBOARDS ) + pci_boards_found +=init_PCI (); + num_cards += pci_boards_found;#endif /* ENABLE_PCI */
ChangeSet 1.1322, 2003/06/09 15:32:18-07:00, [email protected]
PCI: remove pci_present() from drivers/char/ip2main.c
drivers/char/ip2main.c | 58 +++++++++++++++++++++++-------------------------- 1 files changed, 28 insertions(+), 30 deletions(-)
drivers/char/ip2main.c +28 -30
@@ -691,41 +691,39 @@ } }#else /* LINUX_VERSION_CODE > 2.1.99 */ -if (pci_present ()) { -struct pci_dev *pci_dev_i =NULL ; - pci_dev_i =pci_find_device (PCI_VENDOR_ID_COMPUTONE , -PCI_DEVICE_ID_COMPUTONE_IP2EX , pci_dev_i); -if (pci_dev_i !=NULL ) { -unsigned int addr; -unsigned char pci_irq; +struct pci_dev *pci_dev_i =NULL ; + pci_dev_i =pci_find_device (PCI_VENDOR_ID_COMPUTONE , +PCI_DEVICE_ID_COMPUTONE_IP2EX , pci_dev_i); +if (pci_dev_i !=NULL ) { +unsigned int addr; +unsigned char pci_irq; - ip2config.type[i] =PCI ; - status = -pci_read_config_dword (pci_dev_i,PCI_BASE_ADDRESS_1 , &addr); -if ( addr &1 ) { - ip2config.addr[i]=(USHORT )(addr&0xfffe ); - }else { -printk (KERN_ERR "IP2: PCI I/O address error\n" ); - } - status = -pci_read_config_byte (pci_dev_i,PCI_INTERRUPT_LINE , &pci_irq); + ip2config.type[i] =PCI ; + status = +pci_read_config_dword (pci_dev_i,PCI_BASE_ADDRESS_1 , &addr); +if ( addr &1 ) { + ip2config.addr[i]=(USHORT )(addr&0xfffe ); + }else { +printk (KERN_ERR "IP2: PCI I/O address error\n" ); + } + status = +pci_read_config_byte (pci_dev_i,PCI_INTERRUPT_LINE , &pci_irq);// If the PCI BIOS assigned it, lets try and use it. If we // can't acquire it or it screws up, deal with it then. -// if (!is_valid_irq(pci_irq)) { -// printk( KERN_ERR "IP2: Bad PCI BIOS IRQ(%d)\n",pci_irq); -// pci_irq = 0; -// } - ip2config.irq[i] = pci_irq; - }else {// ann error - ip2config.addr[i] =0 ; -if (status ==PCIBIOS_DEVICE_NOT_FOUND ) { -printk (KERN_ERR "IP2: PCI board %d not found\n" , i ); - }else { -pcibios_strerror (status); - } - } +// if (!is_valid_irq(pci_irq)) { +// printk( KERN_ERR "IP2: Bad PCI BIOS IRQ(%d)\n",pci_irq); +// pci_irq = 0; +// } + ip2config.irq[i] = pci_irq; + }else {// ann error + ip2config.addr[i] =0 ; +if (status ==PCIBIOS_DEVICE_NOT_FOUND ) { +printk (KERN_ERR "IP2: PCI board %d not found\n" , i ); + }else { +pcibios_strerror (status); + } }#endif /* ! 2_0_X */ #else
ChangeSet 1.1323, 2003/06/09 15:32:51-07:00, [email protected]
PCI: remove pci_present() from drivers/char/isicom.c
drivers/char/isicom.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-)
drivers/char/isicom.c +1 -1
@@ -1905,7 +1905,7 @@ } } -if (pci_present () && (card <BOARD_COUNT )) { +if (card <BOARD_COUNT ) {for (idx=0 ; idx <DEVID_COUNT ; idx++) { dev =NULL ;for (;;){
ChangeSet 1.1324, 2003/06/09 15:33:18-07:00, [email protected]
PCI: remove pci_present() from drivers/char/istallion.c
drivers/char/istallion.c | 3 --- 1 files changed, 3 deletions(-)
drivers/char/istallion.c +0 -3
@@ -4670,9 +4670,6 @@printk ("stli_findpcibrds()\n" );#endif -if (!pci_present ()) -return (0 ); -while ((dev =pci_find_device (PCI_VENDOR_ID_STALLION ,PCI_DEVICE_ID_ECRA , dev))) {if ((rc =stli_initpcibrd (BRD_ECPPCI , dev)))