On Thu, Apr 08, 2021 at 07:19:29AM -0700, isa...@codeaurora.org wrote: > On 2021-04-08 06:58, Will Deacon wrote: > > On Wed, Apr 07, 2021 at 09:52:38PM -0700, Isaac J. Manjarres wrote: > > > Implement the unmap_pages() callback for the ARM v7s io-pgtable > > > format. > > > > > > Signed-off-by: Isaac J. Manjarres <isa...@codeaurora.org> > > > --- > > > drivers/iommu/io-pgtable-arm-v7s.c | 23 ++++++++++++++++++++--- > > > 1 file changed, 20 insertions(+), 3 deletions(-) > > > > > > diff --git a/drivers/iommu/io-pgtable-arm-v7s.c > > > b/drivers/iommu/io-pgtable-arm-v7s.c > > > index d4004bcf333a..5e203e03c352 100644 > > > --- a/drivers/iommu/io-pgtable-arm-v7s.c > > > +++ b/drivers/iommu/io-pgtable-arm-v7s.c > > > @@ -710,15 +710,32 @@ static size_t __arm_v7s_unmap(struct > > > arm_v7s_io_pgtable *data, > > > return __arm_v7s_unmap(data, gather, iova, size, lvl + 1, ptep); > > > } > > > > > > -static size_t arm_v7s_unmap(struct io_pgtable_ops *ops, unsigned > > > long iova, > > > - size_t size, struct iommu_iotlb_gather *gather) > > > +static size_t arm_v7s_unmap_pages(struct io_pgtable_ops *ops, > > > unsigned long iova, > > > + size_t pgsize, size_t pgcount, > > > + struct iommu_iotlb_gather *gather) > > > { > > > struct arm_v7s_io_pgtable *data = io_pgtable_ops_to_data(ops); > > > + size_t unmapped = 0, ret; > > > > > > if (WARN_ON(iova >= (1ULL << data->iop.cfg.ias))) > > > return 0; > > > > > > - return __arm_v7s_unmap(data, gather, iova, size, 1, data->pgd); > > > + while (pgcount--) { > > > + ret = __arm_v7s_unmap(data, gather, iova, pgsize, 1, data->pgd); > > > + if (!ret) > > > + break; > > > + > > > + unmapped += pgsize; > > > + iova += pgsize; > > > + } > > > + > > > + return unmapped; > > > +} > > > > Wait -- don't you need to hook this up somewhere (likewise for > > ->map_pages)? > Done. Likewise for map_pages(). I'm not sure how the compiler didn't catch > this; I'm compile testing this, as I don't have hardware that uses the short > descriptor format.
Damn, neither do I :/ My seattle has all the memory high up iirc. Will _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu