On Wed, Apr 07, 2021 at 09:52:35PM -0700, Isaac J. Manjarres wrote: > The PTE methods currently operate on a single entry. In preparation > for manipulating multiple PTEs in one map or unmap call, allow them > to handle multiple PTEs. > > Signed-off-by: Isaac J. Manjarres <isa...@codeaurora.org> > Suggested-by: Robin Murphy <robin.mur...@arm.com> > --- > drivers/iommu/io-pgtable-arm.c | 78 +++++++++++++++++++--------------- > 1 file changed, 44 insertions(+), 34 deletions(-) > > diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c > index 87def58e79b5..ea66b10c04c4 100644 > --- a/drivers/iommu/io-pgtable-arm.c > +++ b/drivers/iommu/io-pgtable-arm.c > @@ -232,20 +232,23 @@ static void __arm_lpae_free_pages(void *pages, size_t > size, > free_pages((unsigned long)pages, get_order(size)); > } > > -static void __arm_lpae_sync_pte(arm_lpae_iopte *ptep, > +static void __arm_lpae_sync_pte(arm_lpae_iopte *ptep, int num_entries, > struct io_pgtable_cfg *cfg) > { > dma_sync_single_for_device(cfg->iommu_dev, __arm_lpae_dma_addr(ptep), > - sizeof(*ptep), DMA_TO_DEVICE); > + sizeof(*ptep) * num_entries, DMA_TO_DEVICE); > }
Have you tested this with CONFIG_DMA_API_DEBUG=y? I _think_ it should be ok as long as we don't attempt to sync across a page boundary, but it would be good to give it a spin just to check. Will _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu