Message ID | 20240514153130.394307-7-clg@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | vfio: Improve error reporting (part 2 | expand |
On 5/14/24 17:31, Cédric Le Goater wrote: > It will simplify the changes coming after. > > Reviewed-by: Avihai Horon <avihaih@nvidia.com> > Signed-off-by: Cédric Le Goater <clg@redhat.com> > --- > > Changes in v6: > > - Modified title (Avihai) > - vfio_iommu_map_dirty_notify() : Modified goto label (Avihai) > > hw/vfio/common.c | 22 +++++++++++++--------- > 1 file changed, 13 insertions(+), 9 deletions(-) > > diff --git a/hw/vfio/common.c b/hw/vfio/common.c > index ed5ee6349ced78b3bde68d2ee506f78ba1a9dd9c..4e2ef3d3034e72aa6a546bcb9ea1f31a0bbd5b1b 100644 > --- a/hw/vfio/common.c > +++ b/hw/vfio/common.c > @@ -1224,16 +1224,20 @@ static void vfio_iommu_map_dirty_notify(IOMMUNotifier *n, IOMMUTLBEntry *iotlb) > } > > rcu_read_lock(); > - if (vfio_get_xlat_addr(iotlb, NULL, &translated_addr, NULL)) { > - ret = vfio_get_dirty_bitmap(bcontainer, iova, iotlb->addr_mask + 1, > - translated_addr); > - if (ret) { > - error_report("vfio_iommu_map_dirty_notify(%p, 0x%"HWADDR_PRIx", " > - "0x%"HWADDR_PRIx") = %d (%s)", > - bcontainer, iova, iotlb->addr_mask + 1, ret, > - strerror(-ret)); > - } > + if (!vfio_get_xlat_addr(iotlb, NULL, &translated_addr, NULL)) { > + goto out_unlock; > } > + > + ret = vfio_get_dirty_bitmap(bcontainer, iova, iotlb->addr_mask + 1, > + translated_addr); > + if (ret) { > + error_report("vfio_iommu_map_dirty_notify(%p, 0x%"HWADDR_PRIx", " > + "0x%"HWADDR_PRIx") = %d (%s)", > + bcontainer, iova, iotlb->addr_mask + 1, ret, > + strerror(-ret)); > + } > + > +out_unlock: > rcu_read_unlock(); > > out: Reviewed-by: Eric Auger <eric.auger@redhat.com> Eric
diff --git a/hw/vfio/common.c b/hw/vfio/common.c index ed5ee6349ced78b3bde68d2ee506f78ba1a9dd9c..4e2ef3d3034e72aa6a546bcb9ea1f31a0bbd5b1b 100644 --- a/hw/vfio/common.c +++ b/hw/vfio/common.c @@ -1224,16 +1224,20 @@ static void vfio_iommu_map_dirty_notify(IOMMUNotifier *n, IOMMUTLBEntry *iotlb) } rcu_read_lock(); - if (vfio_get_xlat_addr(iotlb, NULL, &translated_addr, NULL)) { - ret = vfio_get_dirty_bitmap(bcontainer, iova, iotlb->addr_mask + 1, - translated_addr); - if (ret) { - error_report("vfio_iommu_map_dirty_notify(%p, 0x%"HWADDR_PRIx", " - "0x%"HWADDR_PRIx") = %d (%s)", - bcontainer, iova, iotlb->addr_mask + 1, ret, - strerror(-ret)); - } + if (!vfio_get_xlat_addr(iotlb, NULL, &translated_addr, NULL)) { + goto out_unlock; } + + ret = vfio_get_dirty_bitmap(bcontainer, iova, iotlb->addr_mask + 1, + translated_addr); + if (ret) { + error_report("vfio_iommu_map_dirty_notify(%p, 0x%"HWADDR_PRIx", " + "0x%"HWADDR_PRIx") = %d (%s)", + bcontainer, iova, iotlb->addr_mask + 1, ret, + strerror(-ret)); + } + +out_unlock: rcu_read_unlock(); out: