Loading hw/scsi/vmw_pvscsi.c +18 −8 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -1092,6 +1093,8 @@ pvscsi_init(PCIDevice *pci_dev) scsi_bus_new(&s->bus, sizeof(s->bus), DEVICE(pci_dev), &pvscsi_scsi_info, NULL); /* override default SCSI bus hotplug-handler, with pvscsi's one */ qbus_set_hotplug_handler(BUS(&s->bus), DEVICE(s), &error_abort); pvscsi_reset_state(s); return 0; Loading Loading @@ -1187,6 +1190,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; Loading @@ -1199,6 +1203,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 = { Loading @@ -1206,6 +1212,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 Loading Loading
hw/scsi/vmw_pvscsi.c +18 −8 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -1092,6 +1093,8 @@ pvscsi_init(PCIDevice *pci_dev) scsi_bus_new(&s->bus, sizeof(s->bus), DEVICE(pci_dev), &pvscsi_scsi_info, NULL); /* override default SCSI bus hotplug-handler, with pvscsi's one */ qbus_set_hotplug_handler(BUS(&s->bus), DEVICE(s), &error_abort); pvscsi_reset_state(s); return 0; Loading Loading @@ -1187,6 +1190,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; Loading @@ -1199,6 +1203,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 = { Loading @@ -1206,6 +1212,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 Loading