On 21.09.2017 19:56, Eduardo Habkost wrote:
> On Thu, Sep 07, 2017 at 11:22:42AM +0200, Thomas Huth wrote:
>> qdev_unplug() bails out with an assertion if the user tries to device_del
>> a hot-plugged device that does not have a hotplug controller. Unfortunately,
>> our devices are all marked with hotpluggable = true by default (see the
>> device_class_init() function in qdev.c), so it currently can happen that
>> the user runs into this situation and QEMU gets terminated unexpectedly:
>>
>> $ qemu-system-aarch64 -M virt -nographic -nodefaults -monitor stdio -S
>> QEMU 2.10.50 monitor - type 'help' for more information
>> (qemu) device_add aux-to-i2c-bridge,id=x
>> (qemu) device_del x
>> **
>> ERROR:qdev-monitor.c:872:qdev_unplug: assertion failed: (hotplug_ctrl)
>> Aborted (core dumped)
>>
>> Hotplugging devices without a hotplug controller does not make much sense,
>> so we should disallow this during the device_add process already!
>>
>> Suggested-by: Paolo Bonzini <pbonz...@redhat.com>
>> Signed-off-by: Thomas Huth <th...@redhat.com>
> 
> I'm queueing this on machine-next.  We still want it even if we
> apply the patch that changes TYPE_DEVICE to hotpluggable=false by
> default, right?

As far as I can see, yes. There might be machine types where e.g. the
PCI bus comes without a hotplug controller, so in that case we'd need this.

 Thomas

Reply via email to