The 'offset' data member of the 'struct scatterlist' denotes the offset into a SG entry in bytes. But under drm subsystem, there has nearly NO drivers that actually tough the 'offset' data member of SG anymore. Especially for drivers that could contact with drm/etnaviv. This means that all DMA addresses that sg_dma_address() gives us will be PAGE_SIZE aligned, in other words, sg->offset will always equal to 0. Drop those compulations about the offset of SG entries can save some extra overhead. Signed-off-by: Sui Jingfeng <sui.jingfeng@xxxxxxxxx> --- drivers/gpu/drm/etnaviv/etnaviv_mmu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/etnaviv/etnaviv_mmu.c b/drivers/gpu/drm/etnaviv/etnaviv_mmu.c index 8f33f111f9e8..ddb536d84c58 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_mmu.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_mmu.c @@ -82,8 +82,8 @@ static int etnaviv_iommu_map(struct etnaviv_iommu_context *context, return -EINVAL; for_each_sgtable_dma_sg(sgt, sg, i) { - phys_addr_t pa = sg_dma_address(sg) - sg->offset; - unsigned int da_len = sg_dma_len(sg) + sg->offset; + phys_addr_t pa = sg_dma_address(sg); + 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); -- 2.34.1