On Mon, Sep 29, 2014 at 12:28:04PM +0200, Igor Mammedov wrote: > On Mon, 29 Sep 2014 13:16:08 +0300 > "Michael S. Tsirkin" <m...@redhat.com> wrote: > > > On Fri, Sep 26, 2014 at 09:28:05AM +0000, Igor Mammedov wrote: > > > Changes since v1: > > > * added usb-uas test > > > * drop hotplug check in bus_add_child() > > > * make SCSI & USB bus as default HotplugHandler > > > * fixed dummy HBA hot(un)plug > > > * fixed hotunplug on s390x > > > * prevent hotplug of non hotpluggable devices > > > > For pci, virtio, acpi bits: > > > > Reviewed-by: Michael S. Tsirkin <m...@redhat.com> > > > > Which tree should this go in through? afaerber's? > > In that case, it might be a good idea to Cc him ... > I'm not sure through which tree it should go, > it's not QOM or CPU that's why Andreas wasn't even CCed. > > Could you take it through your tree?
As usual with cross-tree changes, selecting a tree is not obvious, but Andreas was handling most core/qdev patches. So sure, I can merge these if I get his ack. > > > > > -- > > > > > > Series unifies different hotplug mechanisms to a recent > > > hotplug-handler API and does shallow conversion of > > > devices that still use legacy qdev hotplug to it dropping > > > not used after that legacy hotplug path [29/30]. > > > It also relaces SCSI's own way to do hotplug/unplug with > > > hotplug-handler callbacks leaving it the only method > > > perform hotplug tasks. > > > And the last patch [30/30] allows to unplug of BUS-less > > > devices using hotplug-handler API. > > > > > > Converted devices are covered with new hotplug > > > unit-tests, except of: > > > s390x-*: I have no idea how or means to test it, but code > > > is close to virtio, so it's converted using > > > virtio template > > > pvscsi: is broken, so no means to test it > > > > > > Git tree for testing: > > > https://github.com/imammedo/qemu/commits/hp_ctrl_conversion_v2 > > > > > > > > > Igor Mammedov (36): > > > test: virtio-scsi: check if hot-plug/unplug works > > > test: virtio-serial: check if hot-plug/unplug works > > > test: libqos: add qpci_plug_device_test() and > > > qpci_unplug_acpi_device_test() > > > test: virtio-rng: check if hot-plug/unplug works > > > test: virtio-net: check if hot-plug/unplug works > > > test: virtio-blk: check if hot-plug/unplug works > > > test: usb: move uhci port test code to libqos/usb.c > > > test: usb: add port test to uhci unit test > > > test: usb: generic usb device hotplug > > > test: usb: usb-storage hotplug test > > > test: usb: usb-uas hotplug test > > > access BusState.allow_hotplug using wraper qbus_is_hotpluggable() > > > qdev: do not allow to instantiate non hotpluggable device with > > > device_add > > > qdev: HotplugHandler: rename unplug callback to unplug_request > > > qdev: HotplugHandler: provide unplug callback > > > qdev: add simple/generic unplug callback for HotplugHandler > > > qdev: add wrapper to set BUS as HotplugHandler > > > qdev: drop hotplug check from bus_add_child() > > > target-i386: ICC bus: drop BusState.allow_hotplug > > > virtio-pci: drop BusState.allow_hotplug > > > virtio-serial: convert to hotplug-handler API > > > virtio-mmio: drop useless bus->allow_hotplug = 0 > > > s390x: drop not used allow_hotplug in event-facility > > > s390x: convert s390-virtio to hotplug handler API > > > s390x: convert virtio-ccw to hotplug handler API > > > scsi: set SCSI BUS itself as default HotplugHandler > > > scsi: convert pvscsi HBA to hotplug handler API > > > scsi: convert virtio-scsi HBA to hotplug handler API > > > scsi: cleanup not used anymore SCSIBusInfo{hotplug,hot_unplug} > > > fields usb-bot: mark device as non hotpluggable > > > usb-bot: drop not needed "allow_hotplug = 0" > > > usb-storage: drop not needed "allow_hotplug = 0" > > > usb: convert usb-ccid to hotplug handler API > > > usb: convert usb devices to hotplug handler API > > > qdev: drop legacy hotplug fields/methods > > > qdev: HotplugHandler: add support for unplugging BUS-less devices > > > > > > hw/acpi/piix4.c | 6 +-- > > > hw/char/virtio-serial-bus.c | 20 +++++++--- > > > hw/core/hotplug.c | 11 ++++++ > > > hw/core/qdev.c | 85 > > > ++++++++++++++++++++++++++++-------------- > > > hw/cpu/icc_bus.c | 8 ---- > > > hw/i386/acpi-build.c | 2 +- > > > hw/isa/lpc_ich9.c | 6 +-- > > > hw/pci-bridge/pci_bridge_dev.c | 2 +- > > > hw/pci/pci-hotplug-old.c | 4 +- > > > hw/pci/pcie.c | 4 +- > > > hw/pci/pcie_port.c | 2 +- > > > hw/pci/shpc.c | 4 +- > > > hw/s390x/event-facility.c | 2 - > > > hw/s390x/s390-virtio-bus.c | 12 +++--- > > > hw/s390x/virtio-ccw.c | 17 +++++---- > > > hw/scsi/scsi-bus.c | 24 ++++-------- > > > hw/scsi/virtio-scsi.c | 30 ++++++++++----- > > > hw/scsi/vmw_pvscsi.c | 26 +++++++++---- > > > hw/usb/bus.c | 9 ++++- > > > hw/usb/dev-smartcard-reader.c | 8 +++- > > > hw/usb/dev-storage.c | 4 +- > > > hw/virtio/virtio-mmio.c | 17 +-------- > > > hw/virtio/virtio-pci.c | 3 -- > > > include/hw/hotplug.h | 16 +++++++- > > > include/hw/pci/pcie.h | 4 +- > > > include/hw/pci/shpc.h | 4 +- > > > include/hw/qdev-core.h | 17 +++++---- > > > include/hw/scsi/scsi.h | 2 - > > > qdev-monitor.c | 5 ++- > > > tests/Makefile | 13 ++++--- > > > tests/libqos/pci-pc.c | 49 ++++++++++++++++++++++++ > > > tests/libqos/pci.h | 3 ++ > > > tests/libqos/usb.c | 71 > > > +++++++++++++++++++++++++++++++++++ tests/libqos/usb.h > > > | 17 +++++++++ tests/usb-hcd-ehci-test.c | 50 > > > ++++++++++--------------- tests/usb-hcd-ohci-test.c | 10 ++++- > > > tests/usb-hcd-uhci-test.c | 65 > > > +++++++++++++++++++++++++++++++- tests/usb-hcd-xhci-test.c | > > > 68 ++++++++++++++++++++++++++++++++- tests/virtio-blk-test.c > > > | 49 ++++++++++++++++++------ tests/virtio-net-test.c | 10 > > > +++++ tests/virtio-rng-test.c | 10 +++++ > > > tests/virtio-scsi-test.c | 29 ++++++++++++++ > > > tests/virtio-serial-test.c | 27 ++++++++++++++ 43 files > > > changed, 624 insertions(+), 201 deletions(-) create mode 100644 > > > tests/libqos/usb.c create mode 100644 tests/libqos/usb.h > > > > > > -- > > > 1.8.3.1 > >