[PATCH v2 2/3] iommu/io-pgtable-arm-v7s: Remove split on unmap behavior
Will Deacon
will at kernel.org
Tue Nov 5 16:59:43 UTC 2024
On Mon, Nov 04, 2024 at 04:09:51PM -0400, Jason Gunthorpe wrote:
> Runs OK now:
>
> arm-v7s io-pgtable: self test ok
> arm-lpae io-pgtable: selftest: pgsize_bitmap 0x40201000, IAS 32
>
> Jason
>
> --- a/drivers/iommu/io-pgtable-arm-v7s.c
> +++ b/drivers/iommu/io-pgtable-arm-v7s.c
> @@ -819,7 +819,7 @@ static int __init arm_v7s_do_selftests(void)
> .quirks = IO_PGTABLE_QUIRK_ARM_NS,
> .pgsize_bitmap = SZ_4K | SZ_64K | SZ_1M | SZ_16M,
> };
> - unsigned int iova, size, iova_start;
> + unsigned int iova, size;
> unsigned int i, loopnr = 0;
> size_t mapped;
>
> @@ -871,25 +871,6 @@ static int __init arm_v7s_do_selftests(void)
> loopnr++;
> }
>
> - /* Partial unmap */
> - i = 1;
> - size = 1UL << __ffs(cfg.pgsize_bitmap);
> - while (i < loopnr) {
> - iova_start = i * SZ_16M;
> - if (ops->unmap_pages(ops, iova_start + size, size, 1, NULL) != size)
> - return __FAIL(ops);
> -
> - /* Remap of partial unmap */
> - if (ops->map_pages(ops, iova_start + size, size, size, 1,
> - IOMMU_READ, GFP_KERNEL, &mapped))
> - return __FAIL(ops);
> -
> - if (ops->iova_to_phys(ops, iova_start + size + 42)
> - != (size + 42))
> - return __FAIL(ops);
> - i++;
> - }
> -
> /* Full unmap */
> iova = 0;
> for_each_set_bit(i, &cfg.pgsize_bitmap, BITS_PER_LONG) {
Yup, and you can do the same for the other selftest in io-pgtable-arm.c
Will
More information about the dri-devel
mailing list