[BK PATCH] PCI and PCI Hotplug changes and fixes for 2.5.70

Greg KH (greg@kroah.com)
Wed, 4 Jun 2003 18:31:47 -0700


Hi,

Here's some PCI and PCI Hotplug changes that are against the latest
2.5.70 bk tree. They contain the following:
- dynamic id bug fixes from Matt Domsch
- move drivers/hotplug/ to drivers/pci/hotplug/ I should have
done this originally, and I'm sorry for ignoring everyone who
told me about this, you were right :)
- Because of the PCI Hotplug drivers moving, I was able to remove
about 70 lines from include/linux/pci.h, which should speed up
everyone's compile time some unmeasurable amount :)
- Removed some exported PCI core variables and functions that
didn't need to be exported (no one was using them.)
- Next step in the pci device list locking changes, now the pci
device's reference count is incremented when the pci driver is
probed, and decremented when the driver is done with the
device.
- removed all users of pci_for_each_dev() which was a macro that
directly accessed the pci device lists. This was replaced
with a call to pci_find_device() which will be later changed
to properly lock access to the pci device lists.
- Some "hand made" pci functions were removed from the PCI
hotplug drivers and now they call the proper PCI core
functions.

Because of the pci_for_each_dev() changes, these patches touch a lot of
different files all over the tree, sorry, but it's necessary for us to
get proper pci device locking.

On the plus side, I ended up removing 58 lines of code from the tree :)

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.

drivers/hotplug/Kconfig | 120 -
drivers/hotplug/Makefile | 44
drivers/hotplug/acpiphp.h | 262 --
drivers/hotplug/acpiphp_core.c | 505 ----
drivers/hotplug/acpiphp_glue.c | 1335 ------------
drivers/hotplug/acpiphp_pci.c | 510 ----
drivers/hotplug/acpiphp_res.c | 699 ------
drivers/hotplug/cpci_hotplug.h | 100
drivers/hotplug/cpci_hotplug_core.c | 919 --------
drivers/hotplug/cpci_hotplug_pci.c | 647 ------
drivers/hotplug/cpcihp_generic.c | 290 --
drivers/hotplug/cpcihp_zt5550.c | 306 --
drivers/hotplug/cpcihp_zt5550.h | 79
drivers/hotplug/cpqphp.h | 912 --------
drivers/hotplug/cpqphp_core.c | 1541 --------------
drivers/hotplug/cpqphp_ctrl.c | 3084 ------------------------------
drivers/hotplug/cpqphp_nvram.c | 667 ------
drivers/hotplug/cpqphp_nvram.h | 57
drivers/hotplug/cpqphp_pci.c | 1548 ---------------
drivers/hotplug/cpqphp_sysfs.c | 143 -
drivers/hotplug/ibmphp.h | 772 -------
drivers/hotplug/ibmphp_core.c | 1417 -------------
drivers/hotplug/ibmphp_ebda.c | 1228 -----------
drivers/hotplug/ibmphp_hpc.c | 1228 -----------
drivers/hotplug/ibmphp_pci.c | 1758 -----------------
drivers/hotplug/ibmphp_res.c | 2157 --------------------
drivers/hotplug/pci_hotplug.h | 146 -
drivers/hotplug/pci_hotplug_core.c | 666 ------
drivers/hotplug/pcihp_skeleton.c | 432 ----
arch/alpha/kernel/sys_sio.c | 4
arch/arm/kernel/bios32.c | 4
arch/i386/Kconfig | 2
arch/i386/kernel/cpu/cpufreq/gx-suspmod.c | 4
arch/i386/pci/i386.c | 8
arch/i386/pci/irq.c | 11
arch/ia64/Kconfig | 2
arch/ia64/hp/common/sba_iommu.c | 4
arch/ia64/sn/io/pci_bus_cvlink.c | 2
arch/ia64/sn/io/pciba.c | 8
arch/ia64/sn/io/sn2/pci_bus_cvlink.c | 2
arch/m68knommu/Kconfig | 2
arch/mips/ddb5074/pci.c | 8
arch/mips/ddb5476/pci.c | 8
arch/mips/ddb5xxx/ddb5477/pci.c | 4
arch/mips/mips-boards/generic/pci.c | 4
arch/mips/sni/pci.c | 4
arch/mips64/mips-boards/generic/pci.c | 4
arch/mips64/sgi-ip32/ip32-pci.c | 10
arch/ppc/kernel/pci.c | 12
arch/ppc/platforms/chrp_pci.c | 4
arch/ppc/platforms/gemini_pci.c | 4
arch/ppc/platforms/pmac_pci.c | 8
arch/ppc/platforms/prep_pci.c | 7
arch/ppc64/Kconfig | 9
arch/ppc64/kernel/iSeries_pci.c | 4
arch/ppc64/kernel/pSeries_pci.c | 4
arch/ppc64/kernel/pci.c | 4
arch/ppc64/kernel/pci_dma.c | 4
arch/sh/kernel/pci-sh7751.c | 8
arch/v850/Kconfig | 2
arch/v850/kernel/rte_mb_a_pci.c | 4
arch/x86_64/Kconfig | 2
arch/x86_64/kernel/bluesmoke.c | 4
arch/x86_64/kernel/pci-gart.c | 3
arch/x86_64/pci/irq.c | 11
arch/x86_64/pci/x86-64.c | 8
drivers/Makefile | 1
drivers/acpi/pci_irq.c | 2
drivers/char/agp/amd-k8-agp.c | 4
drivers/char/agp/generic.c | 8
drivers/char/agp/isoch.c | 4
drivers/char/hw_random.c | 4
drivers/char/watchdog/amd7xx_tco.c | 3
drivers/char/watchdog/i810-tco.c | 4
drivers/hotplug/acpiphp_glue.c | 26
drivers/hotplug/ibmphp_core.c | 38
drivers/ide/pci/cs5530.c | 19
drivers/ide/pci/hpt366.c | 4
drivers/ide/pci/pdc202xx_new.c | 4
drivers/ide/setup-pci.c | 4
drivers/macintosh/via-pmu.c | 12
drivers/message/fusion/mptbase.c | 7
drivers/message/i2o/i2o_core.c | 12
drivers/net/e100/e100_main.c | 47
drivers/net/e1000/e1000_main.c | 2
drivers/net/ixgb/ixgb_main.c | 2
drivers/parport/parport_pc.c | 4
drivers/pci/Makefile | 3
drivers/pci/access.c | 3
drivers/pci/bus.c | 3
drivers/pci/hotplug.c | 8
drivers/pci/hotplug/Kconfig | 120 +
drivers/pci/hotplug/Makefile | 44
drivers/pci/hotplug/acpiphp.h | 262 ++
drivers/pci/hotplug/acpiphp_core.c | 505 ++++
drivers/pci/hotplug/acpiphp_glue.c | 1336 ++++++++++++
drivers/pci/hotplug/acpiphp_pci.c | 511 ++++
drivers/pci/hotplug/acpiphp_res.c | 699 ++++++
drivers/pci/hotplug/cpci_hotplug.h | 100
drivers/pci/hotplug/cpci_hotplug_core.c | 919 ++++++++
drivers/pci/hotplug/cpci_hotplug_pci.c | 651 ++++++
drivers/pci/hotplug/cpcihp_generic.c | 290 ++
drivers/pci/hotplug/cpcihp_zt5550.c | 306 ++
drivers/pci/hotplug/cpcihp_zt5550.h | 79
drivers/pci/hotplug/cpqphp.h | 912 ++++++++
drivers/pci/hotplug/cpqphp_core.c | 1541 ++++++++++++++
drivers/pci/hotplug/cpqphp_ctrl.c | 3084 ++++++++++++++++++++++++++++++
drivers/pci/hotplug/cpqphp_nvram.c | 667 ++++++
drivers/pci/hotplug/cpqphp_nvram.h | 57
drivers/pci/hotplug/cpqphp_pci.c | 1549 +++++++++++++++
drivers/pci/hotplug/cpqphp_sysfs.c | 143 +
drivers/pci/hotplug/ibmphp.h | 772 +++++++
drivers/pci/hotplug/ibmphp_core.c | 1428 +++++++++++++
drivers/pci/hotplug/ibmphp_ebda.c | 1228 +++++++++++
drivers/pci/hotplug/ibmphp_hpc.c | 1228 +++++++++++
drivers/pci/hotplug/ibmphp_pci.c | 1758 +++++++++++++++++
drivers/pci/hotplug/ibmphp_res.c | 2157 ++++++++++++++++++++
drivers/pci/hotplug/pci_hotplug.h | 146 +
drivers/pci/hotplug/pci_hotplug_core.c | 666 ++++++
drivers/pci/hotplug/pcihp_skeleton.c | 432 ++++
drivers/pci/pci-driver.c | 29
drivers/pci/pci.c | 16
drivers/pci/pci.h | 56
drivers/pci/pool.c | 2
drivers/pci/probe.c | 6
drivers/pci/proc.c | 5
drivers/pci/search.c | 4
drivers/pci/setup-irq.c | 4
drivers/pci/setup-res.c | 2
drivers/pnp/resource.c | 4
drivers/video/pm2fb.c | 4
drivers/video/sis/sis_main.c | 105 -
include/linux/pci.h | 75
sound/core/memalloc.c | 16
sound/oss/esssolo1.c | 16
sound/oss/maestro.c | 8
sound/oss/via82cxxx_audio.c | 11
sound/pci/rme9652/hammerfall_mem.c | 28
138 files changed, 23960 insertions(+), 24018 deletions(-)
-----

Greg Kroah-Hartman:
o PCI: remove usage of pci_for_each_dev() in arch/ppc64/kernel/pci.c
o PCI: finally remove pci_for_each_dev() now that all users of it are gone
o PCI: remove usage of pci_for_each_dev() in arch/x86_64/pci/x86-64.c
o PCI: remove usage of pci_for_each_dev() in arch/x86_64/pci/irq.c
o PCI: remove usage of pci_for_each_dev() in arch/x86_64/kernel/pci-gart.c
o PCI: remove usage of pci_for_each_dev() in arch/x86_64/kernel/bluesmoke.c
o PCI: remove usage of pci_for_each_dev() in arch/v850/kernel/rte_mb_a_pci.c
o PCI: remove usage of pci_for_each_dev() in arch/sh/kernel/pci-sh7751.c
o PCI: remove usage of pci_for_each_dev() in arch/ppc64/kernel/pci_dma.c
o PCI: remove usage of pci_for_each_dev() in arch/ppc64/kernel/pSeries_pci.c
o PCI: remove usage of pci_for_each_dev() in arch/ppc64/kernel/iSeries_pci.c
o PCI: remove usage of pci_for_each_dev() in arch/ppc/platforms/prep_pci.c
o PCI: remove usage of pci_for_each_dev() in arch/ppc/platforms/pmac_pci.c
o PCI: remove usage of pci_for_each_dev() in arch/ppc/platforms/gemini_pci.c
o PCI: remove usage of pci_for_each_dev() in arch/ppc/platforms/chrp_pci.c
o PCI: remove usage of pci_for_each_dev() in arch/ppc/kernel/pci.c
o PCI: remove usage of pci_for_each_dev() in arch/mips64/sgi-ip32/ip32-pci.c
o PCI: remove usage of pci_for_each_dev() in arch/mips64/mips-boards/generic/pci.c
o PCI: remove usage of pci_for_each_dev() in arch/mips/sni/pci.c
o PCI: remove usage of pci_for_each_dev() in arch/mips/mips-boards/generic/pci.c
o PCI: remove usage of pci_for_each_dev() in arch/mips/ddb5xxx/ddb5477/pci.c
o PCI: remove usage of pci_for_each_dev() in arch/mips/ddb5476/pci.c
o PCI: remove usage of pci_for_each_dev() in arch/mips/ddb5074/pci.c
o PCI: remove usage of pci_for_each_dev() in arch/ia64/sn/io/sn2/pci_bus_cvlink.c
o PCI: remove usage of pci_for_each_dev() in arch/ia64/sn/io/pciba.c
o PCI: remove usage of pci_for_each_dev() in arch/ia64/sn/io/pci_bus_cvlink.c
o PCI: remove usage of pci_for_each_dev() in arch/ia64/hp/common/sba_iommu.c
o PCI: remove usage of pci_for_each_dev() in arch/arm/kernel/bios32.c
o PCI: remove usage of pci_for_each_dev() in arch/alpha/kernel/sys_sio.c
o PCI: remove usage of pci_for_each_dev() in arch/i386/pci/i386.c
o PCI: remove usage of pci_for_each_dev() in arch/i386/kernel/cpu/cpufreq/gx-suspmod.c
o PCI: remove usage of pci_for_each_dev() in arch/i386/pci/irq.c
o PCI: remove usage of pci_for_each_dev() in drivers/video/sis/sis_main.c
o PCI: remove usage of pci_for_each_dev() in drivers/video/pm2fb.c
o PCI: remove usage of pci_for_each_dev() in drivers/pnp/resource.c
o PCI: remove usage of pci_for_each_dev() in drivers/pci/setup-irq.c
o PCI: remove usage of pci_for_each_dev() in drivers/pci/search.c
o PCI: remove usage of pci_for_each_dev() in drivers/pci/proc.c
o PCI: remove usage of pci_for_each_dev() in drivers/pci/pci.c
o PCI: remove usage of pci_for_each_dev() in drivers/pci/hotplug/ibmphp_core.c
o PCI: remove usage of pci_for_each_dev() in drivers/parport/parport_pc.c
o PCI: remove usage of pci_for_each_dev() in drivers/net/ixgb/ixgb_main.c
o PCI: remove usage of pci_for_each_dev() in drivers/net/e1000/e1000_main.c
o PCI: remove usage of pci_for_each_dev() in drivers/net/e100/e100_main.c
o PCI: remove usage of pci_for_each_dev() in drivers/message/i2o/i2o_core.c
o PCI: remove usage of pci_for_each_dev() in drivers/message/fusion/mptbase.c
o PCI: remove usage of pci_for_each_dev() in drivers/macintosh/via-pmu.c
o PCI: remove usage of pci_for_each_dev() in drivers/ide/setup-pci.c
o PCI: remove usage of pci_for_each_dev() in drivers/ide/pci/pdc202xx_new.c
o PCI: remove usage of pci_for_each_dev() in drivers/ide/pci/hp2366.c
o PCI: remove usage of pci_for_each_dev() in drivers/ide/pci/cs5530.c
o PCI: remove usage of pci_for_each_dev() in drivers/char/watchdog/i810-tco.c
o PCI: remove usage of pci_for_each_dev() in drivers/char/watchdog/amd7xx_tco.c
o PCI: remove usage of pci_for_each_dev() in drivers/char/hw_random.c
o PCI: remove usage of pci_for_each_dev() in drivers/char/agp/isoch.c
o PCI: remove usage of pci_for_each_dev() in drivers/char/agp/generic.c
o PCI: remove usage of pci_for_each_dev() in drivers/char/agp/amd-k8-agp.c
o PCI: remove usage of pci_for_each_dev() in drivers/acpi/pci_irq.c
o PCI: remove usage of pci_for_each_dev() in sound/pci/rme9652/hammerfall_mem.c
o PCI: remove usage of pci_for_each_dev() in sound/oss/via82cxxx_audio.c
o PCI: remove usage of pci_for_each_dev() in sound/oss/maestro.c
o PCI: remove usage of pci_for_each_dev() in sound/oss/esssolo1.c
o PCI: remove usage of pci_for_each_dev() in sound/core/memalloc.c
o PCI: Grab reference count on pci_dev if the pci driver binds to the device
o PCI: Move more functions out of include/linux/pci.h that don't need to be there
o PCI: remove CONFIG_PROC_FS checks in .c files
o PCI: Remove a lot of PCI core only functions from include/linux/pci.h
o PCI Hotplug: move drivers/hotplug/* to drivers/pci/hotplug/*
o IBM PCI hotplug: remove direct access of pci_devices variable
o IBM PCI hotplug: remove hand made pci_find_bus function
o ACPI PCI Hotplug: remove hand made pci_find_bus function
o PCI: make pools_lock and pci_lock static
o PCI: make pci_setup_device(), pci_alloc_primary_bus() and pci_alloc_primary_bus_parented() static

Matt Domsch:
o dynids: free dynids on driver unload
o dynids: use list_add_tail

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/