Thread (87 messages) 87 messages, 7 authors, 2015-03-26

[PATCH v6 03/30] PCI: Export busn_resource to drivers/pci

From: bhelgaas@google.com (Bjorn Helgaas)
Date: 2015-03-11 22:28:43
Also in: linux-alpha, linux-pci, lkml

On Mon, Mar 09, 2015 at 10:34:00AM +0800, Yijing Wang wrote:
quoted hunk ↗ jump to hunk
Export out busn_resource. Xen pcifront module need it.

Signed-off-by: Yijing Wang <redacted>
---
 drivers/pci/pci.h   |    2 ++
 drivers/pci/probe.c |    3 ++-
 2 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index 4091f82..eeacab9 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -10,6 +10,8 @@ bool pcie_cap_has_lnkctl(const struct pci_dev *dev);
 
 /* Functions internal to the PCI core code */
 
+extern struct resource busn_resource;
+
 int pci_create_sysfs_dev_files(struct pci_dev *pdev);
 void pci_remove_sysfs_dev_files(struct pci_dev *pdev);
 #if !defined(CONFIG_DMI) && !defined(CONFIG_ACPI)
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 8ef0375..b97ea81 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -17,12 +17,13 @@
 #define CARDBUS_LATENCY_TIMER	176	/* secondary latency timer */
 #define CARDBUS_RESERVE_BUSNR	3
 
-static struct resource busn_resource = {
+struct resource busn_resource = {
 	.name	= "PCI busn",
 	.start	= 0,
 	.end	= 255,
 	.flags	= IORESOURCE_BUS,
 };
+EXPORT_SYMBOL(busn_resource);
I don't think this is a good idea.  We support multiple PCI domains, and
each domain has its own 0-255 bus number range.  This busn_resource is
only for domain 0 and probably should be handled in arch code instead of
the PCI core.

Right now, I think it's possible to call pci_scan_bus_parented() or
pci_scan_bus() several times for buses in different domains, and they would
all share the same busn_resource, which would cause corruption.

So it's already broken, but I don't want to make it harder to fix by
exporting this stuff.
 
 /* Ugh.  Need to stop exporting this to modules. */
 LIST_HEAD(pci_root_buses);
-- 
1.7.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help