From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60345) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bD7Pi-0002v3-EO for qemu-devel@nongnu.org; Wed, 15 Jun 2016 05:47:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bD7Pc-0001eh-ET for qemu-devel@nongnu.org; Wed, 15 Jun 2016 05:47:09 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40138) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bD7Pc-0001eQ-9D for qemu-devel@nongnu.org; Wed, 15 Jun 2016 05:47:04 -0400 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A3E376437F for ; Wed, 15 Jun 2016 09:47:03 +0000 (UTC) From: Gerd Hoffmann Date: Wed, 15 Jun 2016 11:46:54 +0200 Message-Id: <1465984019-28963-1-git-send-email-kraxel@redhat.com> Subject: [Qemu-devel] [PATCH v2 0/5] usb: hotplug support for usb-bot and usb-uas List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Gerd Hoffmann 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. v2 changes: * rebased to latest master. * add patch #1 (kill dead code for qcow2 encryption). * reword patch #3 as suggested by Markus. please review, Gerd Gerd Hoffmann (5): usb-storage: qcow2 encryption support is finally gone, zap dead code usb: make USBDevice->attached bool usb: Add QOM property "attached ". usb-bot: hotplug support usb-uas: hotplug support hw/usb/bus.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- hw/usb/dev-storage.c | 42 ++++++------------------------------------ hw/usb/dev-uas.c | 5 +++++ include/hw/usb.h | 3 ++- 4 files changed, 59 insertions(+), 41 deletions(-) -- 1.8.3.1