Commit 09e5ab63 authored by Anthony Liguori's avatar Anthony Liguori Committed by Andreas Färber
Browse files

qdev: Use wrapper for qdev_get_path



This makes it easier to remove it from BusInfo.

Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
[AF: Drop now unnecessary NULL initialization in scsibus_get_dev_path()]
Signed-off-by: default avatarAndreas Färber <afaerber@suse.de>
parent fdae245f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2603,8 +2603,8 @@ void qemu_ram_set_idstr(ram_addr_t addr, const char *name, DeviceState *dev)
    assert(new_block);
    assert(!new_block->idstr[0]);

    if (dev && dev->parent_bus && dev->parent_bus->info->get_dev_path) {
        char *id = dev->parent_bus->info->get_dev_path(dev);
    if (dev) {
        char *id = qdev_get_dev_path(dev);
        if (id) {
            snprintf(new_block->idstr, sizeof(new_block->idstr), "%s/", id);
            g_free(id);
+16 −0
Original line number Diff line number Diff line
@@ -494,6 +494,22 @@ char* qdev_get_fw_dev_path(DeviceState *dev)
    return strdup(path);
}

char *qdev_get_dev_path(DeviceState *dev)
{
    BusInfo *businfo;

    if (!dev || !dev->parent_bus) {
        return NULL;
    }

    businfo = dev->parent_bus->info;
    if (businfo->get_dev_path) {
        return businfo->get_dev_path(dev);
    }

    return NULL;
}

/**
 * Legacy property handling
 */
+2 −0
Original line number Diff line number Diff line
@@ -352,4 +352,6 @@ void qdev_set_parent_bus(DeviceState *dev, BusState *bus);

extern int qdev_hotplug;

char *qdev_get_dev_path(DeviceState *dev);

#endif
+2 −4
Original line number Diff line number Diff line
@@ -1453,12 +1453,10 @@ static char *scsibus_get_dev_path(DeviceState *dev)
{
    SCSIDevice *d = DO_UPCAST(SCSIDevice, qdev, dev);
    DeviceState *hba = dev->parent_bus->parent;
    char *id = NULL;
    char *id;
    char *path;

    if (hba && hba->parent_bus && hba->parent_bus->info->get_dev_path) {
        id = hba->parent_bus->info->get_dev_path(hba);
    }
    id = qdev_get_dev_path(hba);
    if (id) {
        path = g_strdup_printf("%s/%d:%d:%d", id, d->channel, d->id, d->lun);
    } else {
+2 −3
Original line number Diff line number Diff line
@@ -467,9 +467,8 @@ static char *usb_get_dev_path(DeviceState *qdev)
    DeviceState *hcd = qdev->parent_bus->parent;
    char *id = NULL;

    if ((dev->flags & (1 << USB_DEV_FLAG_FULL_PATH)) &&
        hcd && hcd->parent_bus && hcd->parent_bus->info->get_dev_path) {
        id = hcd->parent_bus->info->get_dev_path(hcd);
    if (dev->flags & (1 << USB_DEV_FLAG_FULL_PATH)) {
        id = qdev_get_dev_path(hcd);
    }
    if (id) {
        char *ret = g_strdup_printf("%s/%s", id, dev->port->path);
Loading