Patchwork [v3,23/27] PCI: Update pci_resource_bar() to support addon_resource

login
register
mail settings
Submitter Yinghai Lu
Date March 13, 2013, 11:28 p.m.
Message ID <1363217302-14383-24-git-send-email-yinghai@kernel.org>
Download mbox | patch
Permalink /patch/227398/
State Changes Requested
Headers show

Comments

Yinghai Lu - March 13, 2013, 11:28 p.m.
Need to loop addon resource list to retrieve reg_addr in it.

Signed-off-by: Yinghai Lu <yinghai@kernel.org>
---
 drivers/pci/pci.c |    7 +++++++
 1 file changed, 7 insertions(+)

Patch

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index dca6c1a1..7dca4f1 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -3613,6 +3613,13 @@  int pci_resource_bar(struct pci_dev *dev, int resno, enum pci_bar_type *type)
 		reg = pci_iov_resource_bar(dev, resno, type);
 		if (reg)
 			return reg;
+	} else if (resno >= PCI_NUM_RESOURCES) {
+		struct resource *res = pci_dev_resource_n(dev, resno);
+
+		if (res) {
+			*type = pci_bar_unknown;
+			return to_pci_dev_addon_resource(res)->reg_addr;
+		}
 	}
 
 	dev_err(&dev->dev, "BAR %d: invalid resource\n", resno);