|
@@ -1057,10 +1057,12 @@ static void virtio_ccw_reset(DeviceState *d)
|
|
{
|
|
{
|
|
VirtioCcwDevice *dev = VIRTIO_CCW_DEVICE(d);
|
|
VirtioCcwDevice *dev = VIRTIO_CCW_DEVICE(d);
|
|
VirtIODevice *vdev = virtio_bus_get_device(&dev->bus);
|
|
VirtIODevice *vdev = virtio_bus_get_device(&dev->bus);
|
|
- CcwDevice *ccw_dev = CCW_DEVICE(d);
|
|
|
|
|
|
+ VirtIOCCWDeviceClass *vdc = VIRTIO_CCW_DEVICE_GET_CLASS(dev);
|
|
|
|
|
|
virtio_ccw_reset_virtio(dev, vdev);
|
|
virtio_ccw_reset_virtio(dev, vdev);
|
|
- css_reset_sch(ccw_dev->sch);
|
|
|
|
|
|
+ if (vdc->parent_reset) {
|
|
|
|
+ vdc->parent_reset(d);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
static void virtio_ccw_vmstate_change(DeviceState *d, bool running)
|
|
static void virtio_ccw_vmstate_change(DeviceState *d, bool running)
|
|
@@ -1714,12 +1716,13 @@ static void virtio_ccw_device_class_init(ObjectClass *klass, void *data)
|
|
{
|
|
{
|
|
DeviceClass *dc = DEVICE_CLASS(klass);
|
|
DeviceClass *dc = DEVICE_CLASS(klass);
|
|
CCWDeviceClass *k = CCW_DEVICE_CLASS(dc);
|
|
CCWDeviceClass *k = CCW_DEVICE_CLASS(dc);
|
|
|
|
+ VirtIOCCWDeviceClass *vdc = VIRTIO_CCW_DEVICE_CLASS(klass);
|
|
|
|
|
|
k->unplug = virtio_ccw_busdev_unplug;
|
|
k->unplug = virtio_ccw_busdev_unplug;
|
|
dc->realize = virtio_ccw_busdev_realize;
|
|
dc->realize = virtio_ccw_busdev_realize;
|
|
dc->unrealize = virtio_ccw_busdev_unrealize;
|
|
dc->unrealize = virtio_ccw_busdev_unrealize;
|
|
dc->bus_type = TYPE_VIRTUAL_CSS_BUS;
|
|
dc->bus_type = TYPE_VIRTUAL_CSS_BUS;
|
|
- dc->reset = virtio_ccw_reset;
|
|
|
|
|
|
+ device_class_set_parent_reset(dc, virtio_ccw_reset, &vdc->parent_reset);
|
|
}
|
|
}
|
|
|
|
|
|
static const TypeInfo virtio_ccw_device_info = {
|
|
static const TypeInfo virtio_ccw_device_info = {
|