The 'usb-hub' device doesn't have any special properties.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_command.c | 33 ++++++++++++++++++---------------
1 file changed, 18 insertions(+), 15 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index d0bf3dbb30..306dcc6b8c 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -4860,19 +4860,27 @@ qemuBuildUSBHostdevDevProps(const virDomainDef *def,
}
-static char *
-qemuBuildHubDevStr(const virDomainDef *def,
+static int
+qemuBuildHubDevCmd(virCommand *cmd,
+ const virDomainDef *def,
virDomainHubDef *dev,
- virQEMUCaps *qemuCaps G_GNUC_UNUSED)
+ virQEMUCaps *qemuCaps)
{
- g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
+ g_autoptr(virJSONValue) props = NULL;
- virBufferAddLit(&buf, "usb-hub");
- virBufferAsprintf(&buf, ",id=%s", dev->info.alias);
- if (qemuBuildDeviceAddressStr(&buf, def, &dev->info) < 0)
- return NULL;
+ if (virJSONValueObjectCreate(&props,
+ "s:driver", "usb-hub",
+ "s:id", dev->info.alias,
+ NULL) < 0)
+ return -1;
- return virBufferContentAndReset(&buf);
+ if (qemuBuildDeviceAddressProps(props, def, &dev->info) < 0)
+ return -1;
+
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ return -1;
+
+ return 0;
}
@@ -4884,13 +4892,8 @@ qemuBuildHubCommandLine(virCommand *cmd,
size_t i;
for (i = 0; i < def->nhubs; i++) {
- virDomainHubDef *hub = def->hubs[i];
- g_autofree char *optstr = NULL;
-
- virCommandAddArg(cmd, "-device");
- if (!(optstr = qemuBuildHubDevStr(def, hub, qemuCaps)))
+ if (qemuBuildHubDevCmd(cmd, def, def->hubs[i], qemuCaps) < 0)
return -1;
- virCommandAddArg(cmd, optstr);
}
return 0;
--
2.31.1