[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1328425088-6562-24-git-send-email-yinghai@kernel.org>
Date: Sat, 4 Feb 2012 22:58:07 -0800
From: Yinghai Lu <yinghai@...nel.org>
To: Jesse Barnes <jbarnes@...tuousgeek.org>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Tony Luck <tony.luck@...el.com>
Cc: Bjorn Helgaas <bhelgaas@...gle.com>,
Dominik Brodowski <linux@...inikbrodowski.net>,
Andrew Morton <akpm@...ux-foundation.org>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Greg Kroah-Hartman <gregkh@...e.de>, linux-pci@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-arch@...r.kernel.org,
Yinghai Lu <yinghai@...nel.org>
Subject: [PATCH 23/24] PCI: make pci_rescan_bus_bridge_resize use pci_scan_bridge instead
So after remove all children and then using setpci change bus register and rescan
bridge could use new set bus number.
Otherwise need to rescan parent bus, it would have too much overhead.
also need to use pci_bus_add_single_device to make sure new change bus have directory
/sys/../.../pci_bus.
Signed-off-by: Yinghai Lu <yinghai@...nel.org>
---
drivers/pci/probe.c | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 61df44d..e85b823 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1972,14 +1972,16 @@ EXPORT_SYMBOL(pci_scan_bus);
*/
unsigned int __ref pci_rescan_bus_bridge_resize(struct pci_dev *bridge)
{
- unsigned int max;
- struct pci_bus *bus = bridge->subordinate;
+ unsigned int max = 0;
+ int pass;
+ struct pci_bus *bus = bridge->bus;
- max = pci_scan_child_bus(bus);
+ for (pass = 0; pass < 2; pass++)
+ max = pci_scan_bridge(bus, bridge, max, pass);
pci_assign_unassigned_bridge_resources(bridge);
- pci_bus_add_devices(bus);
+ pci_bus_add_single_device(bridge);
return max;
}
--
1.7.7
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists