On 19/01/2015 14:23, arei.gong...@huawei.com wrote: > @@ -780,6 +788,12 @@ static int qdev_get_fw_dev_path_helper(DeviceState *dev, > char *p, int size) > d = bus_get_fw_dev_path(dev->parent_bus, dev); > } > if (d) { > + l += snprintf(p + l, size - l, "%s/", d); > + g_free(d); > + } > + > + d = qdev_get_own_fw_dev_path_from_handler(dev->parent_bus, dev);
This changes preexisting behavior. If d was true, you wouldn't go down the following else. Now it does. I was thinking it should be handled though the "suffix" argument to add_boot_device_path, but that's harder now that the suffix has to be passed to device_add_bootindex_property. Perhaps you could call qdev_get_own_fw_dev_path_from_handler in get_boot_devices_list, and convert non-NULL suffixes to implementations of FWPathProvider? Paolo > + if (d) { > l += snprintf(p + l, size - l, "%s", d); > g_free(d); > } else {