Commit 2e4278b5 authored by Wei Jiangang's avatar Wei Jiangang Committed by Michael S. Tsirkin
Browse files

hw/pci-bridge: Add missing unref in case register-bus fails



The error paths after a successful qdev_create/pci_bus_new
should contain a object_unref/object_unparent.
pxb_dev_init_common() did not yet, so add it.

Signed-off-by: default avatarWei Jiangang <weijg.fnst@cn.fujitsu.com>
Signed-off-by: default avatarCao jin <caoj.fnst@cn.fujitsu.com>
Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Reviewed-by: default avatarMarcel Apfelbaum <marcel@redhat.com>
Reviewed-by: default avatarMarkus Armbruster <armbru@redhat.com>
parent a378b49a
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -249,7 +249,7 @@ static int pxb_dev_init_common(PCIDevice *dev, bool pcie)
    PCI_HOST_BRIDGE(ds)->bus = bus;

    if (pxb_register_bus(dev, bus)) {
        return -EINVAL;
        goto err_register_bus;
    }

    qdev_init_nofail(ds);
@@ -263,6 +263,12 @@ static int pxb_dev_init_common(PCIDevice *dev, bool pcie)

    pxb_dev_list = g_list_insert_sorted(pxb_dev_list, pxb, pxb_compare);
    return 0;

err_register_bus:
    object_unref(OBJECT(bds));
    object_unparent(OBJECT(bus));
    object_unref(OBJECT(ds));
    return -EINVAL;
}

static int pxb_dev_initfn(PCIDevice *dev)