virtio-iommu: Fix error handling in virtio_iommu_set_host_iova_ranges()

In case no IOMMUPciBus/IOMMUDevice are found we need to properly
set the error handle and return.

Fixes : Coverity CID 1549006

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Fixes: cf2647a76e ("virtio-iommu: Compute host reserved regions")
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Eric Auger 2024-07-01 10:48:53 +02:00 committed by Cédric Le Goater
parent 44b7329de4
commit 37baedf8e8
1 changed files with 6 additions and 1 deletions

View File

@ -563,10 +563,15 @@ static int virtio_iommu_set_host_iova_ranges(VirtIOIOMMU *s, PCIBus *bus,
int ret = -EINVAL;
if (!sbus) {
error_report("%s no sbus", __func__);
error_setg(errp, "%s: no IOMMUPciBus found!", __func__);
return ret;
}
sdev = sbus->pbdev[devfn];
if (!sdev) {
error_setg(errp, "%s: no IOMMUDevice found!", __func__);
return ret;
}
current_ranges = sdev->host_resv_ranges;