mirror of https://gitee.com/openkylin/qemu.git
virtio-s390: add a reset function to virtio-s390 devices
virtio-s390 devices are not being reset when their bus is. To fix this, add a reset method that forwards to virtio_reset. This is only needed because of the "strange" modeling of virtio devices; the ->vdev link is being handled manually rather than through qdev. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
49973ebc03
commit
93726cb319
|
@ -508,6 +508,13 @@ static int s390_virtio_busdev_init(DeviceState *dev)
|
||||||
return _info->init(_dev);
|
return _info->init(_dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void s390_virtio_busdev_reset(DeviceState *dev)
|
||||||
|
{
|
||||||
|
VirtIOS390Device *_dev = (VirtIOS390Device *)dev;
|
||||||
|
|
||||||
|
virtio_reset(_dev->vdev);
|
||||||
|
}
|
||||||
|
|
||||||
static void virtio_s390_device_class_init(ObjectClass *klass, void *data)
|
static void virtio_s390_device_class_init(ObjectClass *klass, void *data)
|
||||||
{
|
{
|
||||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||||
|
@ -515,6 +522,7 @@ static void virtio_s390_device_class_init(ObjectClass *klass, void *data)
|
||||||
dc->init = s390_virtio_busdev_init;
|
dc->init = s390_virtio_busdev_init;
|
||||||
dc->bus_type = TYPE_S390_VIRTIO_BUS;
|
dc->bus_type = TYPE_S390_VIRTIO_BUS;
|
||||||
dc->unplug = qdev_simple_unplug_cb;
|
dc->unplug = qdev_simple_unplug_cb;
|
||||||
|
dc->reset = s390_virtio_busdev_reset;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const TypeInfo virtio_s390_device_info = {
|
static const TypeInfo virtio_s390_device_info = {
|
||||||
|
|
Loading…
Reference in New Issue