@@ -225,7 +225,18 @@ char *get_boot_devices_list(size_t *size, bool ignore_suffixes)
snprintf(bootpath, bootpathlen, "%s%s", devpath, i->suffix);
g_free(devpath);
} else if (devpath) {
- bootpath = devpath;
+ char *d = NULL;
+ size_t bootpathlen;
+
+ d = qdev_get_own_fw_dev_path_from_handler(i->dev->parent_bus, i->dev);
+ if (d) {
+ bootpathlen = strlen(devpath) + strlen(d) + 1;
+ bootpath = g_malloc(bootpathlen);
+ snprintf(bootpath, bootpathlen, "%s%s", devpath, d);
+ g_free(devpath);
+ } else {
+ bootpath = devpath;
+ }
} else if (!ignore_suffixes) {
assert(i->suffix);
bootpath = g_strdup(i->suffix);