diff options
Diffstat (limited to 'hw/virtio')
| -rw-r--r-- | hw/virtio/vhost-user-gpio.c | 3 | ||||
| -rw-r--r-- | hw/virtio/virtio-iommu.c | 3 | ||||
| -rw-r--r-- | hw/virtio/virtio.c | 2 |
3 files changed, 3 insertions, 5 deletions
diff --git a/hw/virtio/vhost-user-gpio.c b/hw/virtio/vhost-user-gpio.c index aff2d7eff6..a83437a5da 100644 --- a/hw/virtio/vhost-user-gpio.c +++ b/hw/virtio/vhost-user-gpio.c @@ -229,7 +229,6 @@ static int vu_gpio_connect(DeviceState *dev, Error **errp) if (gpio->connected) { return 0; } - gpio->connected = true; vhost_dev_set_config_notifier(vhost_dev, &gpio_ops); gpio->vhost_user.supports_config = true; @@ -243,6 +242,8 @@ static int vu_gpio_connect(DeviceState *dev, Error **errp) return ret; } + gpio->connected = true; + /* restore vhost state */ if (virtio_device_started(vdev, vdev->status)) { vu_gpio_start(vdev); diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c index 89fb5767d1..9d463efc52 100644 --- a/hw/virtio/virtio-iommu.c +++ b/hw/virtio/virtio-iommu.c @@ -698,9 +698,6 @@ static int virtio_iommu_probe(VirtIOIOMMU *s, } sdev = container_of(iommu_mr, IOMMUDevice, iommu_mr); - if (!sdev) { - return -EINVAL; - } count = virtio_iommu_fill_resv_mem_prop(sdev, ep_id, buf, free); if (count < 0) { diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index e5105571cf..3a160f86ed 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -2137,7 +2137,7 @@ void virtio_reset(void *opaque) vdev->device_endian = virtio_default_endian(); } - if (vdev->vhost_started) { + if (vdev->vhost_started && k->get_vhost) { vhost_reset_device(k->get_vhost(vdev)); } |