Should only use it with bridge instead of bus.
It could get new subordinate. so can not use it with reguar bus.

In that case, user may need to make sure all children devices get removed
already before rescan.

Signed-off-by: Yinghai Lu <[email protected]>
---
 drivers/pci/pci-sysfs.c |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 2100c04..60cb06b 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -339,7 +339,7 @@ dev_bridge_rescan_store(struct device *dev, struct 
device_attribute *attr,
 
        if (val) {
                mutex_lock(&pci_remove_rescan_mutex);
-               pci_rescan_bus(pdev->subordinate);
+               pci_rescan_bus_bridge_resize(pdev);
                mutex_unlock(&pci_remove_rescan_mutex);
        }
        return count;
@@ -389,10 +389,7 @@ dev_bus_rescan_store(struct device *dev, struct 
device_attribute *attr,
 
        if (val) {
                mutex_lock(&pci_remove_rescan_mutex);
-               if (!pci_is_root_bus(bus) && list_empty(&bus->devices))
-                       pci_rescan_bus_bridge_resize(bus->self);
-               else
-                       pci_rescan_bus(bus);
+               pci_rescan_bus(bus);
                mutex_unlock(&pci_remove_rescan_mutex);
        }
        return count;
-- 
1.7.7

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

Reply via email to