From 5e9205a39d9c2e277b6d29e68e63aeccb289c0ed Mon Sep 17 00:00:00 2001 From: Bjorn Helgaas Date: Thu, 20 Sep 2012 17:09:48 -0600 Subject: [PATCH] --- yaml --- r: 324260 b: refs/heads/master c: 94bb346480f8646871e5547491b5746ae0a643c3 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/pci/iov.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 8a8796d221fb..a707ba31f1b3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9b9a6d261616bed589302bc6244c5bd7c99a733f +refs/heads/master: 94bb346480f8646871e5547491b5746ae0a643c3 diff --git a/trunk/drivers/pci/iov.c b/trunk/drivers/pci/iov.c index b0fe7712b4d4..aeccc911abb8 100644 --- a/trunk/drivers/pci/iov.c +++ b/trunk/drivers/pci/iov.c @@ -152,11 +152,15 @@ static int virtfn_add(struct pci_dev *dev, int id, int reset) static void virtfn_remove(struct pci_dev *dev, int id, int reset) { char buf[VIRTFN_ID_LEN]; + struct pci_bus *bus; struct pci_dev *virtfn; struct pci_sriov *iov = dev->sriov; - virtfn = pci_get_domain_bus_and_slot(pci_domain_nr(dev->bus), - virtfn_bus(dev, id), virtfn_devfn(dev, id)); + bus = pci_find_bus(pci_domain_nr(dev->bus), virtfn_bus(dev, id)); + if (!bus) + return; + + virtfn = pci_get_slot(bus, virtfn_devfn(dev, id)); if (!virtfn) return;