Skip to contentSkip to conversation

iommu/mediatek-v1: Fix off-by-one in MT2701_LARB_NR_MAX

PATCH Applied Akari Tsuyukusa 2 participants 2 messages Jun 29 – Jul 9

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 iommu/mediatek-v1: Fix off-by-one in MT2701_LARB_NR_MAX

The mt2701_m4u_in_larb[] array contains 4 (for LARB0 to LARB3) elements, meaning mt2701_m4u_to_larb() can legitimately return 3. The current check if (larbid >= MT2701_LARB_NR_MAX) incorrectly rejects valid LARB3 with -EINVAL.

Fix this off-by-one error by updating MT2701_LARB_NR_MAX to 4.

Note that this does not cause immediate issues with the current mt2701.dtsi and mt7623n.dtsi because it only defines 3 LARBs:

    mediatek,larbs = <&larb0 &larb1 &larb2>;

Thus, larbid never reaches 3 in the existing upstream device tree.

Fixes de78657e16f4 ("iommu/mediatek: Fix NULL pointer dereference when printing dev_name")
---
 drivers/iommu/mtk_iommu_v1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/iommu/mtk_iommu_v1.c +1 -1
index ac97dd2868d4..e907c9953142 100644
@@ -88,7 +88,7 @@ struct dma_iommu_mapping {
 /* MTK generation one iommu HW only support 4K size mapping */
 #define MT2701_IOMMU_PAGE_SHIFT			12
 #define MT2701_IOMMU_PAGE_SIZE			(1UL << MT2701_IOMMU_PAGE_SHIFT)
-#define MT2701_LARB_NR_MAX			3
+#define MT2701_LARB_NR_MAX			4
 
 /*
  * MTK m4u support 4GB iova address space, and only support 4K page
Signature · 1 line
2.54.0
maintainer Applied
#1 lore raw
Quoted 2 lines · Akari Tsuyukusa
 drivers/iommu/mtk_iommu_v1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Applied, thanks.