Hot unplug is broken in qemu.git/master (92259b7f434b382fc865d1f65f7d5adeed295749 aka 2.0-rc0).
It can be bisected but I won't be able to do that today. Here are the details if anyone has ideas: $ x86_64-softmmu/qemu-system-x86_64 -enable-kvm -cpu host -m 1024 -drive if=virtio,cache=none,file=test.img (qemu) drive_add 0 if=none,id=drive0,file=test.qcow2,format=qcow2 (qemu) device_add virtio-blk-pci,drive=drive0,id=virtio-blk-pci0 (qemu) device_del virtio-blk-pci0 ERROR:qom/object.c:725:object_unref: assertion failed: (obj->ref > 0) #5 0x00007fd4b0610959 in object_unref (obj=0x7fd4b27e29f8) at qom/object.c:725 #6 0x00007fd4b044280a in memory_region_del_subregion (mr=0x7fd4b25402c0, subregion=0x7fd4b27e29f8) at /home/stefanha/qemu/memory.c:1702 #7 0x00007fd4b05bfdcf in pci_unregister_io_regions (pci_dev=0x7fd4b27e25e0) at hw/pci/pci.c:894 #8 pci_unregister_device (dev=<optimized out>) at hw/pci/pci.c:905 #9 0x00007fd4b0570a84 in device_unrealize (dev=0x7fd4b27e25e0, errp=0x7fd49cbfd8b0) at hw/core/qdev.c:196 #10 0x00007fd4b0571f3a in device_set_realized (obj=<optimized out>, value=<optimized out>, errp=0x0) at hw/core/qdev.c:885 #11 0x00007fd4b060fb8e in property_set_bool (obj=0x7fd4b27e25e0, v=<optimized out>, opaque=0x7fd4b2610a70, name=<optimized out>, errp=0x0) at qom/object.c:1473 #12 0x00007fd4b06123f7 in object_property_set_qobject (obj=obj@entry=0x7fd4b27e25e0, value=value@entry=0x7fd490021140, name=name@entry=0x7fd4b06d70d0 "realized", errp=errp@entry=0x0) at qom/qom-qobject.c:24 #13 0x00007fd4b0611010 in object_property_set_bool (obj=obj@entry=0x7fd4b27e25e0, value=value@entry=false, name=name@entry=0x7fd4b06d70d0 "realized", errp=errp@entry=0x0) at qom/object.c:888 #14 0x00007fd4b05707db in device_unparent (obj=0x7fd4b27e25e0) at hw/core/qdev.c:1000 #15 0x00007fd4b0610c85 in object_unparent (obj=0x7fd4b27e25e0) at qom/object.c:396 #16 0x00007fd4b0550776 in acpi_pcihp_eject_slot (s=<optimized out>, bsel=<optimized out>, slots=<optimized out>) at hw/acpi/pcihp.c:139