[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 23/30] scsi: convert virtio-scsi HBA to hotplug
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 23/30] scsi: convert virtio-scsi HBA to hotplug handler API |
Date: |
Wed, 24 Sep 2014 14:15:33 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 |
Il 24/09/2014 13:48, Igor Mammedov ha scritto:
> Signed-off-by: Igor Mammedov <address@hidden>
> ---
> hw/scsi/virtio-scsi.c | 28 ++++++++++++++++++----------
> 1 file changed, 18 insertions(+), 10 deletions(-)
>
> diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c
> index 86aba88..aeda1cf 100644
> --- a/hw/scsi/virtio-scsi.c
> +++ b/hw/scsi/virtio-scsi.c
> @@ -649,26 +649,29 @@ static void virtio_scsi_change(SCSIBus *bus, SCSIDevice
> *dev, SCSISense sense)
> }
> }
>
> -static void virtio_scsi_hotplug(SCSIBus *bus, SCSIDevice *dev)
> +static void virtio_scsi_hotplug(HotplugHandler *hotplug_dev, DeviceState
> *dev,
> + Error **errp)
> {
> - VirtIOSCSI *s = container_of(bus, VirtIOSCSI, bus);
> - VirtIODevice *vdev = VIRTIO_DEVICE(s);
> + VirtIODevice *vdev = VIRTIO_DEVICE(hotplug_dev);
>
> if ((vdev->guest_features >> VIRTIO_SCSI_F_HOTPLUG) & 1) {
> - virtio_scsi_push_event(s, dev, VIRTIO_SCSI_T_TRANSPORT_RESET,
> + virtio_scsi_push_event(VIRTIO_SCSI(hotplug_dev), SCSI_DEVICE(dev),
> + VIRTIO_SCSI_T_TRANSPORT_RESET,
> VIRTIO_SCSI_EVT_RESET_RESCAN);
> }
> }
>
> -static void virtio_scsi_hot_unplug(SCSIBus *bus, SCSIDevice *dev)
> +static void virtio_scsi_hotunplug(HotplugHandler *hotplug_dev, DeviceState
> *dev,
> + Error **errp)
> {
> - VirtIOSCSI *s = container_of(bus, VirtIOSCSI, bus);
> - VirtIODevice *vdev = VIRTIO_DEVICE(s);
> + VirtIODevice *vdev = VIRTIO_DEVICE(hotplug_dev);
>
> if ((vdev->guest_features >> VIRTIO_SCSI_F_HOTPLUG) & 1) {
> - virtio_scsi_push_event(s, dev, VIRTIO_SCSI_T_TRANSPORT_RESET,
> + virtio_scsi_push_event(VIRTIO_SCSI(hotplug_dev), SCSI_DEVICE(dev),
> + VIRTIO_SCSI_T_TRANSPORT_RESET,
> VIRTIO_SCSI_EVT_RESET_REMOVED);
> }
> + qdev_simple_device_unplug_cb(hotplug_dev, dev, errp);
> }
>
> static struct SCSIBusInfo virtio_scsi_scsi_info = {
> @@ -680,8 +683,6 @@ static struct SCSIBusInfo virtio_scsi_scsi_info = {
> .complete = virtio_scsi_command_complete,
> .cancel = virtio_scsi_request_cancelled,
> .change = virtio_scsi_change,
> - .hotplug = virtio_scsi_hotplug,
> - .hot_unplug = virtio_scsi_hot_unplug,
> .parse_cdb = virtio_scsi_parse_cdb,
> .get_sg_list = virtio_scsi_get_sg_list,
> .save_request = virtio_scsi_save_request,
> @@ -785,6 +786,7 @@ static void virtio_scsi_class_init(ObjectClass *klass,
> void *data)
> {
> DeviceClass *dc = DEVICE_CLASS(klass);
> VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass);
> + HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(klass);
>
> dc->props = virtio_scsi_properties;
> set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
> @@ -793,6 +795,8 @@ static void virtio_scsi_class_init(ObjectClass *klass,
> void *data)
> vdc->set_config = virtio_scsi_set_config;
> vdc->get_features = virtio_scsi_get_features;
> vdc->reset = virtio_scsi_reset;
> + hc->plug = virtio_scsi_hotplug;
> + hc->unplug = virtio_scsi_hotunplug;
> }
>
> static const TypeInfo virtio_scsi_common_info = {
> @@ -808,6 +812,10 @@ static const TypeInfo virtio_scsi_info = {
> .parent = TYPE_VIRTIO_SCSI_COMMON,
> .instance_size = sizeof(VirtIOSCSI),
> .class_init = virtio_scsi_class_init,
> + .interfaces = (InterfaceInfo[]) {
> + { TYPE_HOTPLUG_HANDLER },
> + { }
> + }
> };
>
> static void virtio_register_types(void)
>
Reviewed-by: Paolo Bonzini <address@hidden>
- Re: [Qemu-devel] [PATCH 20/30] s390x: convert virtio-ccw to hotplug handler API, (continued)
[Qemu-devel] [PATCH 21/30] scsi: make scsi_bus_new() assign hotplug controller, Igor Mammedov, 2014/09/24
[Qemu-devel] [PATCH 22/30] scsi: convert pvscsi HBA to hotplug hander API, Igor Mammedov, 2014/09/24
[Qemu-devel] [PATCH 23/30] scsi: convert virtio-scsi HBA to hotplug handler API, Igor Mammedov, 2014/09/24
- Re: [Qemu-devel] [PATCH 23/30] scsi: convert virtio-scsi HBA to hotplug handler API,
Paolo Bonzini <=
[Qemu-devel] [PATCH 24/30] scsi: cleanup not used anymore SCSIBusInfo{hotplug, hot_unplug} fields, Igor Mammedov, 2014/09/24
[Qemu-devel] [PATCH 25/30] usb-bot: drop not needed "allow_hotplug = 0", Igor Mammedov, 2014/09/24
- Re: [Qemu-devel] [PATCH 25/30] usb-bot: drop not needed "allow_hotplug = 0", Paolo Bonzini, 2014/09/24
- Re: [Qemu-devel] [PATCH 25/30] usb-bot: drop not needed "allow_hotplug = 0", Igor Mammedov, 2014/09/24
- Re: [Qemu-devel] [PATCH 25/30] usb-bot: drop not needed "allow_hotplug = 0", Paolo Bonzini, 2014/09/24
- Re: [Qemu-devel] [PATCH 25/30] usb-bot: drop not needed "allow_hotplug = 0", Gerd Hoffmann, 2014/09/25
- Re: [Qemu-devel] [PATCH 25/30] usb-bot: drop not needed "allow_hotplug = 0", Igor Mammedov, 2014/09/25
- Re: [Qemu-devel] [PATCH 25/30] usb-bot: drop not needed "allow_hotplug = 0", Gerd Hoffmann, 2014/09/25
Re: [Qemu-devel] [PATCH 25/30] usb-bot: drop not needed "allow_hotplug = 0", Gerd Hoffmann, 2014/09/25