|
|
|
[PATCH 2/7][RESEND] PCI: Correctly clean up pci root buses in function pci_remove_bus() | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] | |
From: Jiang Liu <jiang.liu@xxxxxxxxxx>
Correctly clean up pci root buses in function pci_remove_bus()
The function pci_create_root_bus() allocates the pci bus structure,
registers the bus device and creates the legacy files for a pci root
bus, but returns without setting the is_added flag. The is_added flag
for a pci root bus will be set by function pci_scan_child_bus().
If a pci root bus is destroyed before calling pci_scan_child_bus(),
the is_added flag will not be set. So teach function pci_remove_bus()
to detect such a case and correctly clean up pci root buses.
Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxx>
Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx>
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
---
drivers/pci/remove.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
Index: Bjorn-next-0808/drivers/pci/remove.c
===================================================================
--- Bjorn-next-0808.orig/drivers/pci/remove.c
+++ Bjorn-next-0808/drivers/pci/remove.c
@@ -70,11 +70,10 @@ void pci_remove_bus(struct pci_bus *pci_
list_del(&pci_bus->node);
pci_bus_release_busn_res(pci_bus);
up_write(&pci_bus_sem);
- if (!pci_bus->is_added)
- return;
-
- pci_remove_legacy_files(pci_bus);
- device_unregister(&pci_bus->dev);
+ if (pci_bus->is_added || pci_is_root_bus(pci_bus)) {
+ pci_remove_legacy_files(pci_bus);
+ device_unregister(&pci_bus->dev);
+ }
}
EXPORT_SYMBOL(pci_remove_bus);
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Site Home] [Linux IBM ACPI] [Linux Power Management] [Linux Kernel] [Linux Laptop] [Kernel Newbies] [Share Photos] [Security] [Netfilter] [Bugtraq] [Rubini] [Photo] [Yosemite Photos] [Yosemite News] [MIPS Linux] [ARM Linux] [Linux Security] [Linux RAID] [Samba] [Video 4 Linux] [Device Mapper] [Linux Resources]
![]() |