Patchwork [v4,25/29] PCI: Update pci_resource_bar() to support addon_resource

login
register
mail settings
Submitter Yinghai Lu
Date April 12, 2013, 10:44 p.m.
Message ID <1365806683-26717-26-git-send-email-yinghai@kernel.org>
Download mbox | patch
Permalink /patch/236258/
State Rejected
Headers show

Comments

Yinghai Lu - April 12, 2013, 10:44 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 c1010be..7677c6b 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);