[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 22/30] scsi: convert pvscsi HBA to hotplug hande
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 22/30] scsi: convert pvscsi HBA to hotplug hander API |
Date: |
Wed, 24 Sep 2014 14:13:03 +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>
> ---
> not tested since it's broken, i.e. QEMU hangs in BIOS
> with pvscsi device present on CLI
> ---
> hw/scsi/vmw_pvscsi.c | 24 ++++++++++++++++--------
> 1 file changed, 16 insertions(+), 8 deletions(-)
>
> diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c
> index 5734d19..10586c4 100644
> --- a/hw/scsi/vmw_pvscsi.c
> +++ b/hw/scsi/vmw_pvscsi.c
> @@ -524,17 +524,20 @@ pvscsi_send_msg(PVSCSIState *s, SCSIDevice *dev,
> uint32_t msg_type)
> }
>
> static void
> -pvscsi_hotplug(SCSIBus *bus, SCSIDevice *dev)
> +pvscsi_hotplug(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp)
> {
> - PVSCSIState *s = container_of(bus, PVSCSIState, bus);
> - pvscsi_send_msg(s, dev, PVSCSI_MSG_DEV_ADDED);
> + PVSCSIState *s = PVSCSI(hotplug_dev);
> +
> + pvscsi_send_msg(s, SCSI_DEVICE(dev), PVSCSI_MSG_DEV_ADDED);
> }
>
> static void
> -pvscsi_hot_unplug(SCSIBus *bus, SCSIDevice *dev)
> +pvscsi_hot_unplug(HotplugHandler *hotplug_dev, DeviceState *dev, Error
> **errp)
> {
> - PVSCSIState *s = container_of(bus, PVSCSIState, bus);
> - pvscsi_send_msg(s, dev, PVSCSI_MSG_DEV_REMOVED);
> + PVSCSIState *s = PVSCSI(hotplug_dev);
> +
> + pvscsi_send_msg(s, SCSI_DEVICE(dev), PVSCSI_MSG_DEV_REMOVED);
> + qdev_simple_device_unplug_cb(hotplug_dev, dev, errp);
> }
>
> static void
> @@ -1057,8 +1060,6 @@ static const struct SCSIBusInfo pvscsi_scsi_info = {
> .get_sg_list = pvscsi_get_sg_list,
> .complete = pvscsi_command_complete,
> .cancel = pvscsi_request_cancelled,
> - .hotplug = pvscsi_hotplug,
> - .hot_unplug = pvscsi_hot_unplug,
> };
>
> static int
> @@ -1187,6 +1188,7 @@ static void pvscsi_class_init(ObjectClass *klass, void
> *data)
> {
> DeviceClass *dc = DEVICE_CLASS(klass);
> PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
> + HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(klass);
>
> k->init = pvscsi_init;
> k->exit = pvscsi_uninit;
> @@ -1199,6 +1201,8 @@ static void pvscsi_class_init(ObjectClass *klass, void
> *data)
> dc->props = pvscsi_properties;
> set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
> k->config_write = pvscsi_write_config;
> + hc->unplug = pvscsi_hot_unplug;
> + hc->plug = pvscsi_hotplug;
> }
>
> static const TypeInfo pvscsi_info = {
> @@ -1206,6 +1210,10 @@ static const TypeInfo pvscsi_info = {
> .parent = TYPE_PCI_DEVICE,
> .instance_size = sizeof(PVSCSIState),
> .class_init = pvscsi_class_init,
> + .interfaces = (InterfaceInfo[]) {
> + { TYPE_HOTPLUG_HANDLER },
> + { }
> + }
> };
>
> static void
>
Reviewed-by: Paolo Bonzini <address@hidden>
- Re: [Qemu-devel] [PATCH 17/30] virtio-mmio: drop useless bus->allow_hotplug = 0, (continued)
- [Qemu-devel] [PATCH 18/30] s390x: drop not used allow_hotplug in event-facility, Igor Mammedov, 2014/09/24
- [Qemu-devel] [PATCH 19/30] s390x: convert s390-virtio to hotplug handler API, Igor Mammedov, 2014/09/24
- [Qemu-devel] [PATCH 20/30] s390x: convert virtio-ccw to hotplug handler API, Igor Mammedov, 2014/09/24
- [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
- Re: [Qemu-devel] [PATCH 22/30] scsi: convert pvscsi HBA to hotplug hander API,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 23/30] scsi: convert virtio-scsi HBA to hotplug handler API, Igor Mammedov, 2014/09/24
- [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