From patchwork Fri Apr 12 22:44:39 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [v4,25/29] PCI: Update pci_resource_bar() to support addon_resource X-Patchwork-Submitter: Yinghai Lu X-Patchwork-Id: 236258 Message-Id: <1365806683-26717-26-git-send-email-yinghai@kernel.org> To: Bjorn Helgaas , Ram Pai Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, Yinghai Lu Date: Fri, 12 Apr 2013 15:44:39 -0700 From: Yinghai Lu List-Id: Need to loop addon resource list to retrieve reg_addr in it. Signed-off-by: Yinghai Lu --- drivers/pci/pci.c | 7 +++++++ 1 file changed, 7 insertions(+) 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);