hw/virtio: gracefully handle unset vhost_dev vdev
I've noticed asserts firing because we query the status of vdev after a vhost connection is closed down. Rather than faulting on the NULL indirect just quietly reply false. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20220728135503.1060062-3-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
9a4b6a63ae
commit
f20400ed0d
|
@ -306,7 +306,7 @@ static inline void vhost_dev_log_resize(struct vhost_dev *dev, uint64_t size)
|
||||||
dev->log_size = size;
|
dev->log_size = size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int vhost_dev_has_iommu(struct vhost_dev *dev)
|
static bool vhost_dev_has_iommu(struct vhost_dev *dev)
|
||||||
{
|
{
|
||||||
VirtIODevice *vdev = dev->vdev;
|
VirtIODevice *vdev = dev->vdev;
|
||||||
|
|
||||||
|
@ -316,8 +316,12 @@ static int vhost_dev_has_iommu(struct vhost_dev *dev)
|
||||||
* does not have IOMMU, there's no need to enable this feature
|
* does not have IOMMU, there's no need to enable this feature
|
||||||
* which may cause unnecessary IOTLB miss/update transactions.
|
* which may cause unnecessary IOTLB miss/update transactions.
|
||||||
*/
|
*/
|
||||||
return virtio_bus_device_iommu_enabled(vdev) &&
|
if (vdev) {
|
||||||
virtio_host_has_feature(vdev, VIRTIO_F_IOMMU_PLATFORM);
|
return virtio_bus_device_iommu_enabled(vdev) &&
|
||||||
|
virtio_host_has_feature(vdev, VIRTIO_F_IOMMU_PLATFORM);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *vhost_memory_map(struct vhost_dev *dev, hwaddr addr,
|
static void *vhost_memory_map(struct vhost_dev *dev, hwaddr addr,
|
||||||
|
|
Loading…
Reference in New Issue