diff options
-rw-r--r-- | drivers/pci/probe.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 088131a74d7d..1448f65cc191 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -996,10 +996,9 @@ static int pci_register_host_bridge(struct pci_host_bridge *bridge) /* Temporarily move resources off the list */ list_splice_init(&bridge->windows, &resources); err = device_add(&bridge->dev); - if (err) { - put_device(&bridge->dev); + if (err) goto free; - } + bus->bridge = get_device(&bridge->dev); device_enable_async_suspend(bus->bridge); pci_set_bus_of_node(bus); |