Re: [PATCH v2 1/2] iova: Remove some magazine pointer NULL checks
From: John Garry
Date: Wed Sep 07 2022 - 06:11:00 EST
On 07/09/2022 10:58, Ethan Zhao wrote:
Hi Ethan,
Or also add this:
diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 0d6d8edf782d..e8f0b8f47f45 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -578,6 +578,12 @@ static int iommu_dma_init_domain(struct
iommu_domain *domain, dma_addr_t base,
goto done_unlock;
}
+ if (!iovad->rcaches) {
+ pr_warn("IOVA domain rcache not properly initialised\n");
+ ret = -EFAULT;
+ goto done_unlock;
+ }
+
ret = 0;
goto done_unlock;
If the iovad->rcaches allocation failed, will skip iommu domain dma ops,
so no need *any* iovad,->rcaches check, right ?
and there is already warning about the fallback.
It's not as simple as that. We use the iovad->start_pfn member as a flag
for the IOVA domain being initialized. However that does not mean always
properly initialized. As above, the rcache init may fail, but in this
case we still set start_pfn.
This comes into play when we have multiple devices in the same IOMMU
group, for example, as I mentioned yesterday.
Thanks,
John