ANDROID: KVM: arm64: iommu: Avoid ref count leak when __pkvm_host_use_dma fails

In kvm_iommu_map_pages, release the reference to the domain if we return
early because __pkvm_host_use_dma failed.

Bug: 401132481
Fixes: a737b7d0e721 ("ANDROID: KVM: arm64: iommu: Reduce the logic in generic code")
Change-Id: Ib792425a726513f5a6b8198aa3d0208aa43b0502
Signed-off-by: Daniel Mentz <danielmentz@google.com>
Signed-off-by: Mostafa Saleh <smostafa@google.com>
This commit is contained in:
Daniel Mentz
2025-03-14 18:00:56 -07:00
committed by Mostafa Saleh
parent 3ded8a3190
commit 99ce28bfce
+2 -1
View File
@@ -484,7 +484,7 @@ size_t kvm_iommu_map_pages(pkvm_handle_t domain_id,
ret = __pkvm_use_dma(paddr, size, __get_vcpu());
if (ret)
return 0;
goto out_put_domain;
kvm_iommu_ops->map_pages(domain, iova, paddr, pgsize, pgcount, prot, &total_mapped);
@@ -497,6 +497,7 @@ size_t kvm_iommu_map_pages(pkvm_handle_t domain_id,
if (pgcount)
__pkvm_unuse_dma(paddr + total_mapped, pgcount * pgsize, __get_vcpu());
out_put_domain:
domain_put(domain);
return total_mapped;
}