qemu-e2k/softmmu
Daniel P. Berrangé 64b4529a43 softmmu: fix device deletion events with -device JSON syntax
The -device JSON syntax impl leaks a reference on the created
DeviceState instance. As a result when you hot-unplug the
device, the device_finalize method won't be called and thus
it will fail to emit the required DEVICE_DELETED event.

A 'json-cli' feature was previously added against the
'device_add' QMP command QAPI schema to indicated to mgmt
apps that -device supported JSON syntax. Given the hotplug
bug that feature flag is not usable for its purpose, so
we add a new 'json-cli-hotplug' feature to indicate the
-device supports JSON without breaking hotplug.

Fixes: 5dacda5167
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/802
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20220105123847.4047954-2-berrange@redhat.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Tested-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2022-01-14 12:03:16 +01:00
..
arch_init.c meson.build: Define QEMU_ARCH in config-target.h 2021-08-26 17:02:00 +01:00
balloon.c
bootdevice.c
cpu-throttle.c
cpu-timers.c
cpus.c util/oslib-posix: Forward SIGBUS to MCE handler under Linux 2022-01-07 19:30:13 -05:00
datadir.c
device_tree.c device_tree: Add qemu_fdt_add_path 2021-10-20 18:17:54 -07:00
dma-helpers.c dma: Let dma_buf_rw() propagate MemTxResult 2021-12-31 01:05:27 +01:00
globals.c
icount.c
ioport.c
main.c
memory_mapping.c softmmu/memory_mapping: optimize for RamDiscardManager sections 2021-10-02 08:43:22 +02:00
memory.c memory: Introduce replay_discarded callback for RamDiscardManager 2021-11-01 22:56:44 +01:00
meson.build
physmem.c accel/tcg: suppress IRQ check for special TBs 2021-11-29 15:12:37 +00:00
qdev-monitor.c pci,pc,virtio: bugfixes 2021-11-15 21:56:15 +01:00
qemu-seccomp.c seccomp: don't block getters for resource control syscalls 2021-07-14 14:15:52 +01:00
qtest.c
rtc.c
runstate-action.c
runstate.c runstate: Initialize Error * to NULL 2021-06-15 17:17:09 +02:00
timers-state.h qemu/atomic: Add aligned_{int64,uint64}_t types 2021-07-21 07:45:38 -10:00
tpm.c
trace-events memory: make global_dirty_tracking a bitmask 2021-11-01 22:56:43 +01:00
trace.h
vl.c softmmu: fix device deletion events with -device JSON syntax 2022-01-14 12:03:16 +01:00