Hi, Composite device hotplug is a long-standing issue in qemu.
PCI multifunction hotplug has been solved recently in a pci-specific way, by simply not showing hot-plugged functions to the guest until function #0 is plugged. So I figured we maybe should check whenever we can apply a simliar trick to USB composite devices. As the usb subsystem already can hide usb devices from the guest (used for example with usb-host, in case the physical usb device is not plugged in the host machine) this turned out to be surprisingly simple. So, here we go. Basic idea is the "attached" state becomes settable via monitor. Now you can create a usb-bot (or usb-uas) device, then attach the scsi device(s) you want, and when you are done you flip attached to true to make the composed device visible to the guest. pleae review & comment, Gerd Gerd Hoffmann (4): usb: make USBDevice->attached bool usb: add attached property usb-bot: hotplug support usb-uas: hotplug support hw/usb/bus.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- hw/usb/dev-storage.c | 8 ++++++-- hw/usb/dev-uas.c | 5 +++++ include/hw/usb.h | 3 ++- 4 files changed, 59 insertions(+), 7 deletions(-) -- 1.8.3.1