xen/pci: Check for PCI bridge before using it.
authorZhang, Yang Z <yang.z.zhang@intel.com>
Tue, 22 May 2012 08:40:16 +0000 (08:40 +0000)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Wed, 30 May 2012 14:16:35 +0000 (10:16 -0400)
Some SR-IOV devices may use more than one bus number, but there is no real bridges
because that have internal routing mechanism. So need to check whether the bridge is
existing before using it.

Signed-off-by: Yang Zhang <yang.z.zhang@Intel.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
drivers/xen/pci.c

index b84bf0b..18fff88 100644 (file)
@@ -59,7 +59,7 @@ static int xen_add_device(struct device *dev)
 
 #ifdef CONFIG_ACPI
                handle = DEVICE_ACPI_HANDLE(&pci_dev->dev);
-               if (!handle)
+               if (!handle && pci_dev->bus->bridge)
                        handle = DEVICE_ACPI_HANDLE(pci_dev->bus->bridge);
 #ifdef CONFIG_PCI_IOV
                if (!handle && pci_dev->is_virtfn)