diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index e3e7b4008ac9..040c0be2d6e3 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -5666,10 +5666,8 @@ static int pci_slot_trylock(struct pci_slot *slot) if (!dev->slot || dev->slot != slot) continue; if (dev->subordinate) { - if (!pci_bus_trylock(dev->subordinate)) { - pci_dev_unlock(dev); + if (!pci_bus_trylock(dev->subordinate)) goto unlock; - } } else if (!pci_dev_trylock(dev)) goto unlock; }