From: Greg KH Current BK won't build when CONFIG_HOTPLUG is not set due to undefined references to pci_destroy_dev in hotplug.c. I think it makes sense to not compile hotplug.c in this case at all. Also, this allows to get rid of several function which are unused in non-hotplug kernel. drivers/pci/Makefile | 5 +++-- drivers/pci/hotplug.c | 13 ------------- drivers/pci/pci-driver.c | 8 ++++++++ 3 files changed, 11 insertions(+), 15 deletions(-) diff -puN drivers/pci/hotplug.c~pci-1 drivers/pci/hotplug.c --- 25/drivers/pci/hotplug.c~pci-1 2003-06-23 22:45:32.000000000 -0700 +++ 25-akpm/drivers/pci/hotplug.c 2003-06-23 22:45:32.000000000 -0700 @@ -12,7 +12,6 @@ static void pci_free_resources(struct pci_dev *dev); -#ifdef CONFIG_HOTPLUG int pci_hotplug (struct device *dev, char **envp, int num_envp, char *buffer, int buffer_size) { @@ -209,16 +208,6 @@ int pci_remove_device_safe(struct pci_de } EXPORT_SYMBOL(pci_remove_device_safe); -#else /* CONFIG_HOTPLUG */ - -int pci_hotplug (struct device *dev, char **envp, int num_envp, - char *buffer, int buffer_size) -{ - return -ENODEV; -} - -#endif /* CONFIG_HOTPLUG */ - static void pci_free_resources(struct pci_dev *dev) { @@ -283,7 +272,5 @@ void pci_remove_behind_bridge(struct pci } } -#ifdef CONFIG_HOTPLUG EXPORT_SYMBOL(pci_remove_bus_device); EXPORT_SYMBOL(pci_remove_behind_bridge); -#endif diff -puN drivers/pci/Makefile~pci-1 drivers/pci/Makefile --- 25/drivers/pci/Makefile~pci-1 2003-06-23 22:45:32.000000000 -0700 +++ 25-akpm/drivers/pci/Makefile 2003-06-23 22:45:32.000000000 -0700 @@ -3,8 +3,7 @@ # obj-y += access.o bus.o probe.o pci.o pool.o quirks.o \ - names.o pci-driver.o search.o hotplug.o \ - pci-sysfs.o + names.o pci-driver.o search.o pci-sysfs.o obj-$(CONFIG_PM) += power.o obj-$(CONFIG_PROC_FS) += proc.o @@ -12,6 +11,8 @@ ifndef CONFIG_SPARC64 obj-$(CONFIG_PCI) += setup-res.o endif +obj-$(CONFIG_HOTPLUG) += hotplug.o + # Build the PCI Hotplug drivers if we were asked to obj-$(CONFIG_HOTPLUG_PCI) += hotplug/ diff -puN drivers/pci/pci-driver.c~pci-1 drivers/pci/pci-driver.c --- 25/drivers/pci/pci-driver.c~pci-1 2003-06-23 22:45:32.000000000 -0700 +++ 25-akpm/drivers/pci/pci-driver.c 2003-06-23 22:45:32.000000000 -0700 @@ -486,6 +486,14 @@ void pci_dev_put(struct pci_dev *dev) put_device(&dev->dev); } +#ifndef CONFIG_HOTPLUG +int pci_hotplug (struct device *dev, char **envp, int num_envp, + char *buffer, int buffer_size) +{ + return -ENODEV; +} +#endif + struct bus_type pci_bus_type = { .name = "pci", .match = pci_bus_match, _