Now that qemu fixed device unplug when JSON syntax is used with -device
we can re-enable the feature.
Since the old capability string representation is condemned by
suggesting filtering it as a workaround we must introduce a new string.
To achieve this the original capability position is renamed to
X_QEMU_CAPS_DEVICE_JSON_BROKEN_HOTPLUG and a new position with the
original name QEMU_CAPS_DEVICE_JSON is introduced to prevent us having
to change the rest of the code.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
Warning! patch truncated, see cover letter.
src/qemu/qemu_capabilities.c | 6 ++-
src/qemu/qemu_capabilities.h | 5 ++-
.../caps_7.0.0.x86_64.xml | 1 +
.../audio-alsa-best.x86_64-latest.args | 4 +-
.../audio-alsa-full.x86_64-latest.args | 4 +-
.../audio-alsa-minimal.x86_64-latest.args | 4 +-
.../audio-coreaudio-best.x86_64-latest.args | 4 +-
.../audio-coreaudio-full.x86_64-latest.args | 4 +-
...audio-coreaudio-minimal.x86_64-latest.args | 4 +-
...udio-default-nographics.x86_64-latest.args | 4 +-
.../audio-default-sdl.x86_64-latest.args | 6 +--
.../audio-default-spice.x86_64-latest.args | 6 +--
.../audio-default-vnc.x86_64-latest.args | 6 +--
.../audio-file-best.x86_64-latest.args | 4 +-
.../audio-file-full.x86_64-latest.args | 4 +-
.../audio-file-minimal.x86_64-latest.args | 4 +-
.../audio-jack-full.x86_64-latest.args | 4 +-
.../audio-jack-minimal.x86_64-latest.args | 4 +-
.../audio-many-backends.x86_64-latest.args | 14 +++----
.../audio-none-best.x86_64-latest.args | 4 +-
.../audio-none-full.x86_64-latest.args | 4 +-
.../audio-none-minimal.x86_64-latest.args | 4 +-
.../audio-oss-best.x86_64-latest.args | 4 +-
.../audio-oss-full.x86_64-latest.args | 4 +-
.../audio-oss-minimal.x86_64-latest.args | 4 +-
.../audio-pulseaudio-best.x86_64-latest.args | 4 +-
.../audio-pulseaudio-full.x86_64-latest.args | 4 +-
...udio-pulseaudio-minimal.x86_64-latest.args | 4 +-
.../audio-sdl-best.x86_64-latest.args | 4 +-
.../audio-sdl-full.x86_64-latest.args | 4 +-
.../audio-sdl-minimal.x86_64-latest.args | 4 +-
.../audio-spice-best.x86_64-latest.args | 4 +-
.../audio-spice-full.x86_64-latest.args | 4 +-
.../audio-spice-minimal.x86_64-latest.args | 4 +-
.../blkdeviotune-group-num.x86_64-latest.args | 8 ++--
...blkdeviotune-max-length.x86_64-latest.args | 8 ++--
.../blkdeviotune-max.x86_64-latest.args | 8 ++--
.../blkdeviotune.x86_64-latest.args | 8 ++--
.../channel-unix-guestfwd.x86_64-latest.args | 4 +-
.../console-compat-auto.x86_64-latest.args | 8 ++--
.../console-compat-chardev.x86_64-latest.args | 8 ++--
.../console-compat.x86_64-latest.args | 6 +--
.../console-virtio-unix.x86_64-latest.args | 10 ++---
.../controller-usb-order.x86_64-latest.args | 8 ++--
.../controller-virtio-scsi.x86_64-latest.args | 24 +++++------
...-Icelake-Server-pconfig.x86_64-latest.args | 4 +-
.../cpu-host-model.x86_64-latest.args | 10 ++---
.../cpu-translation.x86_64-latest.args | 4 +-
.../cputune-cpuset-big-id.x86_64-latest.args | 6 +--
.../devices-acpi-index.x86_64-latest.args | 16 +++----
.../disk-aio-io_uring.x86_64-latest.args | 6 +--
.../disk-aio.x86_64-latest.args | 8 ++--
...-backing-chains-noindex.x86_64-latest.args | 16 +++----
.../disk-blockio.x86_64-latest.args | 8 ++--
.../disk-boot-cdrom.x86_64-latest.args | 6 +--
.../disk-boot-disk.x86_64-latest.args | 6 +--
.../disk-cache.x86_64-latest.args | 14 +++----
.../disk-cdrom-bus-other.x86_64-latest.args | 6 +--
...m-empty-network-invalid.x86_64-latest.args | 4 +-
.../disk-cdrom-network.x86_64-latest.args | 10 ++---
.../disk-cdrom-tray.x86_64-latest.args | 10 ++---
.../disk-cdrom.x86_64-latest.args | 10 ++---
.../disk-copy_on_read.x86_64-latest.args | 12 +++---
.../disk-detect-zeroes.x86_64-latest.args | 8 ++--
.../disk-discard.x86_64-latest.args | 8 ++--
.../disk-error-policy.x86_64-latest.args | 8 ++--
.../disk-floppy-q35.x86_64-latest.args | 12 +++---
.../disk-floppy-tray.x86_64-latest.args | 10 ++---
.../disk-floppy.x86_64-latest.args | 8 ++--
.../disk-fmt-qcow.x86_64-latest.args | 6 +--
.../disk-geometry.x86_64-latest.args | 6 +--
.../disk-ide-split.x86_64-latest.args | 8 ++--
.../disk-ide-wwn.x86_64-latest.args | 6 +--
.../disk-ioeventfd.x86_64-latest.args | 12 +++---
.../disk-metadata-cache.x86_64-latest.args | 8 ++--
.../disk-network-gluster.x86_64-latest.args | 8 ++--
.../disk-network-http.x86_64-latest.args | 10 ++---
.../disk-network-iscsi.x86_64-latest.args | 18 ++++----
.../disk-network-nbd.x86_64-latest.args | 12 +++---
.../disk-network-nfs.x86_64-latest.args | 6 +--
...-network-rbd-encryption.x86_64-latest.args | 12 +++---
...sk-network-rbd-no-colon.x86_64-latest.args | 8 ++--
.../disk-network-rbd.x86_64-latest.args | 14 +++----
...isk-network-source-auth.x86_64-latest.args | 8 ++--
...isk-network-tlsx509-nbd.x86_64-latest.args | 4 +-
.../disk-no-boot.x86_64-latest.args | 8 ++--
.../disk-nvme.x86_64-latest.args | 12 +++---
.../disk-order.x86_64-latest.args | 12 +++---
.../disk-readonly-disk.x86_64-latest.args | 8 ++--
.../disk-rotation.x86_64-latest.args | 12 +++---
.../disk-sata-device.x86_64-latest.args | 8 ++--
.../disk-scsi-device-auto.x86_64-latest.args | 10 ++---
.../disk-scsi-disk-split.x86_64-latest.args | 20 ++++-----
.../disk-scsi-disk-vpd.x86_64-latest.args | 12 +++---
.../disk-scsi-disk-wwn.x86_64-latest.args | 12 +++---
...sk-scsi-lun-passthrough.x86_64-latest.args | 12 +++---
.../disk-scsi.x86_64-latest.args | 26 ++++++------
.../disk-serial.x86_64-latest.args | 8 ++--
.../disk-shared.x86_64-latest.args | 14 +++----
.../disk-slices.x86_64-latest.args | 14 +++----
.../disk-snapshot.x86_64-latest.args | 10 ++---
.../disk-source-pool-mode.x86_64-latest.args | 12 +++---
.../disk-source-pool.x86_64-latest.args | 14 +++----
.../disk-transient.x86_64-latest.args | 6 +--
...sk-usb-device-removable.x86_64-latest.args | 8 ++--
.../disk-usb-device.x86_64-latest.args | 8 ++--
.../disk-vhostuser.x86_64-latest.args | 8 ++--
.../disk-virtio-queues.x86_64-latest.args | 8 ++--
...irtio-scsi-reservations.x86_64-latest.args | 10 ++---
.../disk-virtio.x86_64-latest.args | 10 ++---
.../encrypted-disk-usage.x86_64-latest.args | 6 +--
.../encrypted-disk.x86_64-latest.args | 6 +--
.../eoi-disabled.x86_64-latest.args | 4 +-
.../eoi-enabled.x86_64-latest.args | 4 +-
.../event_idx.x86_64-latest.args | 12 +++---
...d-memory-numa-topology4.x86_64-latest.args | 4 +-
.../fips-enabled.x86_64-latest.args | 6 +--
.../floppy-drive-fat.x86_64-latest.args | 6 +--
.../qemuxml2argvdata/fs9p.x86_64-latest.args | 6 +--
.../genid-auto.x86_64-latest.args | 4 +-
.../qemuxml2argvdata/genid.x86_64-latest.args | 4 +-
...egl-headless-rendernode.x86_64-latest.args | 6 +--
.../graphics-egl-headless.x86_64-latest.args | 6 +--
...s-spice-agent-file-xfer.x86_64-latest.args | 8 ++--
...aphics-spice-agentmouse.x86_64-latest.args | 10 ++---
...s-spice-auto-socket-cfg.x86_64-latest.args | 4 +-
...phics-spice-auto-socket.x86_64-latest.args | 4 +-
...phics-spice-compression.x86_64-latest.args | 8 ++--
...hics-spice-egl-headless.x86_64-latest.args | 6 +--
...pice-gl-auto-rendernode.x86_64-latest.args | 6 +--
.../graphics-spice-no-args.x86_64-latest.args | 6 +--
.../graphics-spice-qxl-vga.x86_64-latest.args | 8 ++--
.../graphics-spice-sasl.x86_64-latest.args | 6 +--
.../graphics-spice-socket.x86_64-latest.args | 4 +-
.../graphics-spice-timeout.x86_64-latest.args | 14 +++----
...raphics-spice-usb-redir.x86_64-latest.args | 16 +++----
.../graphics-spice.x86_64-latest.args | 8 ++--
...ics-vnc-auto-socket-cfg.x86_64-latest.args | 6 +--
...raphics-vnc-auto-socket.x86_64-latest.args | 4 +-
...aphics-vnc-egl-headless.x86_64-latest.args | 6 +--
...hics-vnc-no-listen-attr.x86_64-latest.args | 6 +--
.../graphics-vnc-none.x86_64-latest.args | 4 +-
.../graphics-vnc-policy.x86_64-latest.args | 6 +--
.../graphics-vnc-power.x86_64-latest.args | 6 +--
...remove-generated-socket.x86_64-latest.args | 6 +--
.../graphics-vnc-sasl.x86_64-latest.args | 6 +--
...-vnc-socket-new-cmdline.x86_64-latest.args | 4 +-
.../graphics-vnc-socket.x86_64-latest.args | 4 +-
...graphics-vnc-tls-secret.x86_64-latest.args | 4 +-
.../graphics-vnc-tls.x86_64-latest.args | 4 +-
.../graphics-vnc-websocket.x86_64-latest.args | 4 +-
.../graphics-vnc.x86_64-latest.args | 6 +--
...tdev-mdev-display-ramfb.x86_64-latest.args | 8 ++--
...play-spice-egl-headless.x86_64-latest.args | 6 +--
...ev-display-spice-opengl.x86_64-latest.args | 6 +--
...isplay-vnc-egl-headless.x86_64-latest.args | 6 +--
...ostdev-mdev-display-vnc.x86_64-latest.args | 6 +--
.../hostdev-scsi-lsi.x86_64-latest.args | 20 ++++-----
...ostdev-scsi-virtio-scsi.x86_64-latest.args | 22 +++++-----
.../hugepages-memaccess3.x86_64-latest.args | 2 +-
.../hugepages-nvdimm.x86_64-latest.args | 4 +-
.../hyperv-off.x86_64-latest.args | 4 +-
.../hyperv-panic.x86_64-latest.args | 2 +-
.../hyperv-passthrough.x86_64-latest.args | 2 +-
.../hyperv-stimer-direct.x86_64-latest.args | 2 +-
.../hyperv.x86_64-latest.args | 2 +-
.../input-linux.x86_64-latest.args | 4 +-
.../intel-iommu-aw-bits.x86_64-latest.args | 2 +-
...ntel-iommu-caching-mode.x86_64-latest.args | 2 +-
...ntel-iommu-device-iotlb.x86_64-latest.args | 2 +-
.../intel-iommu-eim.x86_64-latest.args | 2 +-
.../intel-iommu.x86_64-latest.args | 2 +-
...threads-virtio-scsi-pci.x86_64-latest.args | 10 ++---
.../kvmclock+eoi-disabled.x86_64-latest.args | 4 +-
...nch-security-sev-direct.x86_64-latest.args | 4 +-
...luks-disks-source-qcow2.x86_64-latest.args | 16 +++----
.../luks-disks-source.x86_64-latest.args | 14 +++----
.../luks-disks.x86_64-latest.args | 8 ++--
...memory-default-hugepage.x86_64-latest.args | 4 +-
.../memfd-memory-numa.x86_64-latest.args | 6 +--
...y-hotplug-nvdimm-access.x86_64-latest.args | 8 ++--
...ry-hotplug-nvdimm-align.x86_64-latest.args | 8 ++--
...ry-hotplug-nvdimm-label.x86_64-latest.args | 8 ++--
...ory-hotplug-nvdimm-pmem.x86_64-latest.args | 8 ++--
...hotplug-nvdimm-readonly.x86_64-latest.args | 8 ++--
.../memory-hotplug-nvdimm.x86_64-latest.args | 8 ++--
...mory-hotplug-virtio-mem.x86_64-latest.args | 10 ++---
...ory-hotplug-virtio-pmem.x86_64-latest.args | 8 ++--
.../misc-no-reboot.x86_64-latest.args | 4 +-
.../mlock-off.x86_64-latest.args | 2 +-
.../mlock-on.x86_64-latest.args | 2 +-
.../name-escape.x86_64-latest.args | 20 ++++-----
.../net-vdpa.x86_64-latest.args | 4 +-
.../net-vhostuser.x86_64-latest.args | 8 ++--
.../numatune-hmat.x86_64-latest.args | 4 +-
...emnode-restrictive-mode.x86_64-latest.args | 4 +-
.../numatune-memnode.x86_64-latest.args | 4 +-
.../numatune-system-memory.x86_64-latest.args | 2 +-
.../os-firmware-bios.x86_64-latest.args | 16 +++----
...re-efi-no-enrolled-keys.x86_64-latest.args | 6 +--
...os-firmware-efi-secboot.x86_64-latest.args | 16 +++----
.../os-firmware-efi.x86_64-latest.args | 16 +++----
.../panic-double.x86_64-latest.args | 4 +-
.../panic-no-address.x86_64-latest.args | 8 ++--
.../qemuxml2argvdata/panic.x86_64-latest.args | 8 ++--
...arallel-parport-chardev.x86_64-latest.args | 8 ++--
.../parallel-tcp-chardev.x86_64-latest.args | 8 ++--
.../parallel-unix-chardev.x86_64-latest.args | 8 ++--
...pi-root-hotplug-disable.x86_64-latest.args | 4 +-
...cpi-root-hotplug-enable.x86_64-latest.args | 4 +-
.../pci-serial-dev-chardev.x86_64-latest.args | 8 ++--
...cie-root-port-nohotplug.x86_64-latest.args | 18 ++++----
.../pv-spinlock-disabled.x86_64-latest.args | 4 +-
.../pv-spinlock-enabled.x86_64-latest.args | 4 +-
.../qemu-ns.x86_64-latest.args | 6 +--
...rial-dev-chardev-iobase.x86_64-latest.args | 8 ++--
.../serial-dev-chardev.x86_64-latest.args | 8 ++--
.../serial-file-chardev.x86_64-latest.args | 8 ++--
.../serial-file-log.x86_64-latest.args | 6 +--
.../serial-many-chardev.x86_64-latest.args | 10 ++---
.../serial-pty-chardev.x86_64-latest.args | 8 ++--
...erial-spiceport-nospice.x86_64-latest.args | 6 +--
.../serial-spiceport.x86_64-latest.args | 12 +++---
.../serial-tcp-chardev.x86_64-latest.args | 8 ++--
...rial-tcp-telnet-chardev.x86_64-latest.args | 8 ++--
...p-tlsx509-chardev-notls.x86_64-latest.args | 10 ++---
...-tlsx509-chardev-verify.x86_64-latest.args | 10 ++---
...ial-tcp-tlsx509-chardev.x86_64-latest.args | 10 ++---
...-tlsx509-secret-chardev.x86_64-latest.args | 10 ++---
.../serial-udp-chardev.x86_64-latest.args | 10 ++---
.../serial-unix-chardev.x86_64-latest.args | 8 ++--
.../serial-vc-chardev.x86_64-latest.args | 8 ++--
...rtcard-passthrough-unix.x86_64-latest.args | 8 ++--
.../tpm-emulator-tpm2-enc.x86_64-latest.args | 6 +--
...pm-emulator-tpm2-pstate.x86_64-latest.args | 6 +--
.../tpm-emulator-tpm2.x86_64-latest.args | 6 +--
.../tpm-emulator.x86_64-latest.args | 6 +--
.../tpm-passthrough-crb.x86_64-latest.args | 6 +--
.../tpm-passthrough.x86_64-latest.args | 6 +--
.../tseg-explicit-size.x86_64-latest.args | 10 ++---
.../usb-redir-unix.x86_64-latest.args | 14 +++----
...vhost-user-fs-fd-memory.x86_64-latest.args | 2 +-
...vhost-user-fs-hugepages.x86_64-latest.args | 12 +++---
...host-user-gpu-secondary.x86_64-latest.args | 10 ++---
.../vhost-user-vga.x86_64-latest.args | 8 ++--
.../vhost-vsock-auto.x86_64-latest.args | 6 +--
.../vhost-vsock.x86_64-latest.args | 6 +--
...eo-bochs-display-device.x86_64-latest.args | 8 ++--
...video-qxl-device-vram64.x86_64-latest.args | 6 +--
...o-qxl-sec-device-vram64.x86_64-latest.args | 8 ++--
...eo-ramfb-display-device.x86_64-latest.args | 8 ++--
...video-virtio-vga-gpu-gl.x86_64-latest.args | 8 ++--
.../virtio-9p-createmode.x86_64-latest.args | 14 +++----
.../virtio-9p-multidevs.x86_64-latest.args | 12 +++---
.../virtio-lun.x86_64-latest.args | 12 +++---
...virtio-non-transitional.x86_64-latest.args | 42 +++++++++----------
...-options-controller-ats.x86_64-latest.args | 12 +++---
...ptions-controller-iommu.x86_64-latest.args | 12 +++---
...tions-controller-packed.x86_64-latest.args | 12 +++---
...virtio-options-disk-ats.x86_64-latest.args | 8 ++--
...rtio-options-disk-iommu.x86_64-latest.args | 8 ++--
...tio-options-disk-packed.x86_64-latest.args | 8 ++--
.../virtio-options-fs-ats.x86_64-latest.args | 8 ++--
...virtio-options-fs-iommu.x86_64-latest.args | 8 ++--
...irtio-options-fs-packed.x86_64-latest.args | 8 ++--
...irtio-options-input-ats.x86_64-latest.args | 8 ++--
...tio-options-input-iommu.x86_64-latest.args | 8 ++--
...io-options-input-packed.x86_64-latest.args | 8 ++--
...-options-memballoon-ats.x86_64-latest.args | 4 +-
...loon-freepage-reporting.x86_64-latest.args | 4 +-
...ptions-memballoon-iommu.x86_64-latest.args | 4 +-
...tions-memballoon-packed.x86_64-latest.args | 4 +-
.../virtio-options-net-ats.x86_64-latest.args | 8 ++--
...irtio-options-net-iommu.x86_64-latest.args | 8 ++--
...rtio-options-net-packed.x86_64-latest.args | 8 ++--
.../virtio-options-rng-ats.x86_64-latest.args | 8 ++--
...irtio-options-rng-iommu.x86_64-latest.args | 8 ++--
...rtio-options-rng-packed.x86_64-latest.args | 8 ++--
...irtio-options-video-ats.x86_64-latest.args | 8 ++--
...tio-options-video-iommu.x86_64-latest.args | 8 ++--
...io-options-video-packed.x86_64-latest.args | 8 ++--
.../virtio-options.x86_64-latest.args | 28 ++++++-------
.../virtio-rng-builtin.x86_64-latest.args | 6 +--
.../virtio-rng-egd-unix.x86_64-latest.args | 6 +--
.../virtio-transitional.x86_64-latest.args | 26 ++++++------
.../watchdog-device.x86_64-latest.args | 8 ++--
.../watchdog-dump.x86_64-latest.args | 8 ++--
.../watchdog-injectnmi.x86_64-latest.args | 8 ++--
.../watchdog.x86_64-latest.args | 6 +--
...-default-cpu-kvm-pc-4.2.x86_64-latest.args | 6 +--
...default-cpu-kvm-q35-4.2.x86_64-latest.args | 14 +++----
...efault-cpu-tcg-features.x86_64-latest.args | 10 ++---
...-default-cpu-tcg-pc-4.2.x86_64-latest.args | 6 +--
...default-cpu-tcg-q35-4.2.x86_64-latest.args | 14 +++----
.../x86_64-pc-graphics.x86_64-latest.args | 20 ++++-----
.../x86_64-pc-headless.x86_64-latest.args | 16 +++----
.../x86_64-q35-graphics.x86_64-latest.args | 34 +++++++--------
.../x86_64-q35-headless.x86_64-latest.args | 30 ++++++-------
298 files changed, 1207 insertions(+), 1199 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 5f1eb5014c..a71d3b912f 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -649,11 +649,14 @@ VIR_ENUM_IMPL(virQEMUCaps,
"chardev.json", /* QEMU_CAPS_CHARDEV_JSON */
/* 415 */
- "device.json", /* QEMU_CAPS_DEVICE_JSON */
+ "device.json", /* X_QEMU_CAPS_DEVICE_JSON_BROKEN_HOTPLUG */
"query-dirty-rate", /* QEMU_CAPS_QUERY_DIRTY_RATE */
"rbd-encryption", /* QEMU_CAPS_RBD_ENCRYPTION */
"sev-guest-kernel-hashes", /* QEMU_CAPS_SEV_GUEST_KERNEL_HASHES
*/
"sev-inject-launch-secret", /* QEMU_CAPS_SEV_INJECT_LAUNCH_SECRET
*/
+
+ /* 420 */
+ "device.json+hotplug", /* QEMU_CAPS_DEVICE_JSON */
);
@@ -1556,6 +1559,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] =
{
{ "chardev-add/arg-type/backend/+socket/data/reconnect",
QEMU_CAPS_CHARDEV_RECONNECT },
{ "chardev-add/arg-type/backend/+file/data/logfile",
QEMU_CAPS_CHARDEV_LOGFILE },
{ "chardev-add/arg-type/backend/+file/data/logappend",
QEMU_CAPS_CHARDEV_FILE_APPEND },
+ { "device_add/$json-cli-hotplug", QEMU_CAPS_DEVICE_JSON },
{ "human-monitor-command/$savevm-monitor-nodes",
QEMU_CAPS_SAVEVM_MONITOR_NODES },
{ "migrate-set-parameters/arg-type/max-bandwidth",
QEMU_CAPS_MIGRATION_PARAM_BANDWIDTH },
{ "migrate-set-parameters/arg-type/downtime-limit",
QEMU_CAPS_MIGRATION_PARAM_DOWNTIME },
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index e3a3ab4445..2c1b6a99c4 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -628,12 +628,15 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check
*/
QEMU_CAPS_CHARDEV_JSON, /* -chardev accepts JSON */
/* 415 */
- QEMU_CAPS_DEVICE_JSON, /* -device accepts JSON (must not be used - users are
filtering the capbility) */
+ X_QEMU_CAPS_DEVICE_JSON_BROKEN_HOTPLUG, /* -device accepts JSON (must not be used -
users are filtering the capbility) */
QEMU_CAPS_QUERY_DIRTY_RATE, /* accepts query-dirty-rate */
QEMU_CAPS_RBD_ENCRYPTION, /* Ceph RBD encryption support */
QEMU_CAPS_SEV_GUEST_KERNEL_HASHES, /* sev-guest.kernel-hashes= */
QEMU_CAPS_SEV_INJECT_LAUNCH_SECRET, /* 'sev-inject-launch-secret' qmp command
present */
+ /* 420 */
+ QEMU_CAPS_DEVICE_JSON, /* -device accepts JSON (and works with hot-unplug) */
+
QEMU_CAPS_LAST /* this must always be the last item */
} virQEMUCapsFlags;
diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
index a33b989e21..6b80e7817e 100644
--- a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
@@ -241,6 +241,7 @@
<flag name='rbd-encryption'/>
<flag name='sev-guest-kernel-hashes'/>
<flag name='sev-inject-launch-secret'/>
+ <flag name='device.json+hotplug'/>
<version>6002050</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100243</microcodeVersion>
diff --git a/tests/qemuxml2argvdata/audio-alsa-best.x86_64-latest.args
b/tests/qemuxml2argvdata/audio-alsa-best.x86_64-latest.args
index 4fcffcff19..563c33af45 100644
--- a/tests/qemuxml2argvdata/audio-alsa-best.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/audio-alsa-best.x86_64-latest.args
@@ -27,10 +27,10 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
-no-shutdown \
-no-acpi \
-boot strict=on \
--device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
+-device
'{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}'
\
-blockdev
'{"driver":"host_cdrom","filename":"/dev/cdrom","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}'
\
-blockdev
'{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}'
\
--device ide-cd,bus=ide.1,unit=0,drive=libvirt-1-format,id=ide0-1-0,bootindex=1 \
+-device
'{"driver":"ide-cd","bus":"ide.1","unit":0,"drive":"libvirt-1-format","id":"ide0-1-0","bootindex":1}'
\
-audiodev
'{"id":"audio1","driver":"alsa","timer-period":50,"in":{"mixing-engine":true,"fixed-settings":true,"voices":1,"frequency":44100,"channels":2,"format":"s16","dev":"/dev/dsp0"},"out":{"mixing-engine":true,"fixed-settings":true,"voices":2,"frequency":22050,"channels":4,"format":"f32","dev":"/dev/dsp1"}}'
\
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
[ ... truncated ... ]