On 3/6/24 21:51, Philippe Mathieu-Daudé wrote:
> On 6/3/24 14:34, Cédric Le Goater wrote:
>> It will simplify the changes coming after.
>>
>> Signed-off-by: Cédric Le Goater <clg@redhat.com>
>> ---
>> 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 5b2e6a179cdd5f8ca5be84b7097661e96b391456..6820d2efe4923d5043da7eb8deecb6ff20e1fd16 100644
>> --- a/hw/vfio/common.c
>> +++ b/hw/vfio/common.c
>> @@ -1241,16 +1241,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_lock;
>> }
>> +
>> + 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_lock:
>
> Alternatively use WITH_RCU_READ_LOCK_GUARD() to avoid label.
Sure. I remember your patch. I will resend with your suggestion when
the first part of this series is addressed.
Thanks,
C.