iommu: Switch gather->end to the inclusive end
Currently gather->end is "unsigned long" which may be overflow in arch32 in the corner case: 0xfff00000 + 0x100000(iova + size). Although it doesn't affect the size(end - start), it affects the checking "gather->end < end" This patch changes this "end" to the real end address (end = start + size - 1). Correspondingly, update the length to "end - start + 1". Fixes: a7d20dc1 ("iommu: Introduce struct iommu_iotlb_gather for batching TLB flushes") Signed-off-by:Yong Wu <yong.wu@mediatek.com> Reviewed-by:
Robin Murphy <robin.murphy@arm.com> Acked-by:
Will Deacon <will@kernel.org> Link: https://lore.kernel.org/r/20210107122909.16317-5-yong.wu@mediatek.com Signed-off-by:
Will Deacon <will@kernel.org>
Showing
- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c 1 addition, 1 deletiondrivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
- drivers/iommu/mtk_iommu.c 1 addition, 1 deletiondrivers/iommu/mtk_iommu.c
- drivers/iommu/tegra-gart.c 1 addition, 1 deletiondrivers/iommu/tegra-gart.c
- include/linux/iommu.h 2 additions, 2 deletionsinclude/linux/iommu.h
Loading
Please register or sign in to comment