First patch is a small clean up to the error handling code in qdev_device_add(), and the second patch adds a proper check for the availability of a hotplug controller to prevent the possibility of a crash with device_del.
The crash can currently be triggered for example like this: $ s390x-softmmu/qemu-system-s390x -M none -nographic QEMU 2.10.50 monitor - type 'help' for more information (qemu) device_add qemu-s390x-cpu,id=x (qemu) device_del x ** ERROR:qemu/qdev-monitor.c:872:qdev_unplug: assertion failed: (hotplug_ctrl) Aborted (core dumped) v3: - Invert the logic of the second error check in the first patch as suggested by Igor - Updated the patch description of the second patch with the current way to crash QEMU v2: - Do the check for the availability of the hotplug controller earlier in qdev_device_add - Use common new err_dev_del handler in case of failure Thomas Huth (2): qdev_monitor: Simplify error handling in qdev_device_add() qdev: Check for the availability of a hotplug controller before adding a device hw/core/qdev.c | 28 ++++++++++++++++++++-------- include/hw/qdev-core.h | 1 + qdev-monitor.c | 21 +++++++++++++-------- 3 files changed, 34 insertions(+), 16 deletions(-) -- 1.8.3.1