Message ID | daedc9364a19dc07487e4d07b8768b1e5934abd4.1600700881.git.robin.murphy@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iommu/io-pgtable-arm: Clean up faulty sanity check | expand |
On Mon, Sep 21, 2020 at 04:08:01PM +0100, Robin Murphy wrote: > Checking for a nonzero dma_pfn_offset was a quick shortcut to validate > whether the DMA == phys assumption could hold at all. Checking for a > non-NULL dma_range_map is not quite equivalent, since a map may be > present to describe a limited DMA window even without an offset, and > thus this check can now yield false positives. > > However, it only ever served to short-circuit going all the way through > to __arm_lpae_alloc_pages(), failing the canonical test there, and > having a bit more to clean up. As such, we can simply remove it without > loss of correctness. > > Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org> > Signed-off-by: Robin Murphy <robin.murphy@arm.com> Thanks, applied to the dma-mapping for-next tree.
diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c index d77e881516a4..f87cbb822a3d 100644 --- a/drivers/iommu/io-pgtable-arm.c +++ b/drivers/iommu/io-pgtable-arm.c @@ -751,11 +751,6 @@ arm_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg) if (cfg->oas > ARM_LPAE_MAX_ADDR_BITS) return NULL; - if (!selftest_running && cfg->iommu_dev->dma_range_map) { - dev_err(cfg->iommu_dev, "Cannot accommodate DMA offset for IOMMU page tables\n"); - return NULL; - } - data = kmalloc(sizeof(*data), GFP_KERNEL); if (!data) return NULL;
Checking for a nonzero dma_pfn_offset was a quick shortcut to validate whether the DMA == phys assumption could hold at all. Checking for a non-NULL dma_range_map is not quite equivalent, since a map may be present to describe a limited DMA window even without an offset, and thus this check can now yield false positives. However, it only ever served to short-circuit going all the way through to __arm_lpae_alloc_pages(), failing the canonical test there, and having a bit more to clean up. As such, we can simply remove it without loss of correctness. Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org> Signed-off-by: Robin Murphy <robin.murphy@arm.com> --- drivers/iommu/io-pgtable-arm.c | 5 ----- 1 file changed, 5 deletions(-)