The value of the 'iova' variable is the base GPU virtual address that is going to be mapped, its value won't get updated when etnaviv_context_map() is running under the "for_each_sgtable_dma_sg(sgt, sg, i) {}" loop. Replace it with the 'da' variable, reflect the actual status that GPUVA is being mapped. Signed-off-by: Sui Jingfeng <sui.jingfeng@xxxxxxxxx> --- drivers/gpu/drm/etnaviv/etnaviv_mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/etnaviv/etnaviv_mmu.c b/drivers/gpu/drm/etnaviv/etnaviv_mmu.c index ddb536d84c58..05021848126e 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_mmu.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_mmu.c @@ -86,7 +86,7 @@ static int etnaviv_iommu_map(struct etnaviv_iommu_context *context, unsigned int da_len = sg_dma_len(sg); unsigned int bytes = min_t(unsigned int, da_len, va_len); - VERB("map[%d]: %08x %pap(%x)", i, iova, &pa, bytes); + VERB("map[%d]: %08x %pap(%x)", i, da, &pa, bytes); ret = etnaviv_context_map(context, da, pa, bytes, prot); if (ret) -- 2.34.1