libxl: Fix device_add QMP calls with QEMU 9.2 and newer

QEMU used to ignore JSON types and do conversion string <-> integer
automatically for the command "device_add", but that was removed in
QEMU 9.2 (428d1789df91 ("docs/about: Belatedly document tightening of
QMP device_add checking")).

Fixes: 9718ab394d ("libxl_usb: Make libxl__device_usbctrl_add uses ev_qmp")
Fixes: 40c7eca10a ("libxl_usb: Make libxl__device_usbdev_add uses ev_qmp")
Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
Tested-by: Maximilian Engelhardt <maxi@daemonizer.de>
Reviewed-by: Juergen Gross <jgross@suse.com>
This commit is contained in:
Anthony PERARD committed 2025-12-18 16:44:03 +01:00
1 parent 54c7c5cd98
commit 85e12104f4
1 file changed
+8 -8
+8 -8
View File
@@ -367,10 +367,10 @@ static int libxl__device_usbctrl_add_hvm(libxl__egc *egc, libxl__ev_qmp *qmp,
case 3:
libxl__qmp_param_add_string(gc, &qmp_args,
"driver", "nec-usb-xhci");
libxl__qmp_param_add_string(gc, &qmp_args, "p2",
GCSPRINTF("%d", usbctrl->ports));
libxl__qmp_param_add_string(gc, &qmp_args, "p3",
GCSPRINTF("%d", usbctrl->ports));
libxl__qmp_param_add_integer(gc, &qmp_args, "p2",
usbctrl->ports);
libxl__qmp_param_add_integer(gc, &qmp_args, "p3",
usbctrl->ports);
break;
default:
abort(); /* Should not be possible. */
@@ -411,10 +411,10 @@ static int libxl__device_usbdev_add_hvm(libxl__egc *egc, libxl__ev_qmp *qmp,
GCSPRINTF("xenusb-%d.0", usbdev->ctrl));
libxl__qmp_param_add_string(gc, &qmp_args, "port",
GCSPRINTF("%d", usbdev->port));
libxl__qmp_param_add_string(gc, &qmp_args, "hostbus",
GCSPRINTF("%d", usbdev->u.hostdev.hostbus));
libxl__qmp_param_add_string(gc, &qmp_args, "hostaddr",
GCSPRINTF("%d", usbdev->u.hostdev.hostaddr));
libxl__qmp_param_add_integer(gc, &qmp_args, "hostbus",
usbdev->u.hostdev.hostbus);
libxl__qmp_param_add_integer(gc, &qmp_args, "hostaddr",
usbdev->u.hostdev.hostaddr);
return libxl__ev_qmp_send(egc, qmp, "device_add", qmp_args);
}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.