tree 3beefc05e48c850da554a976384f8e2084e99978
parent ddec11b1452599a006660e160b8a2b707bb0a276
author Jiang Liu <liuj97@gmail.com> 1346168635 +0800
committer Bjorn Helgaas <bhelgaas@google.com> 1347480791 -0600

PCI/vga: Use hotplug-safe pci_get_domain_bus_and_slot()

Following code has a race window between pci_find_bus() and pci_get_slot()
if PCI hotplug operation happens between them which removes the pci_bus.
So use PCI hotplug safe interface pci_get_domain_bus_and_slot() instead,
which also reduces code complexity.

    struct pci_bus *pci_bus = pci_find_bus(domain, busno);
    struct pci_dev *pci_dev = pci_get_slot(pci_bus, devfn);

Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>