iommu/mediatek: Fix forever loop in error handling
authorDan Carpenter <error27@gmail.com>
Wed, 7 Dec 2022 15:56:09 +0000 (18:56 +0300)
committerJoerg Roedel <jroedel@suse.de>
Mon, 12 Dec 2022 11:05:56 +0000 (12:05 +0100)
There is a typo so this loop does i++ where i-- was intended.  It will
result in looping until the kernel crashes.

Fixes: 26593928564c ("iommu/mediatek: Add error path for loop of mm_dts_parse")
Signed-off-by: Dan Carpenter <error27@gmail.com>
Reviewed-by: Yong Wu <yong.wu@mediatek.com>
Link: https://lore.kernel.org/r/Y5C3mTam2nkbaz6o@kili
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/mtk_iommu.c

index 392b8c167c44cc8ac00f6fad4f441464d496cdc2..e9b3b794811dc77bc4ccbdbcf92162644b044999 100644 (file)
@@ -1159,8 +1159,7 @@ static int mtk_iommu_mm_dts_parse(struct device *dev, struct component_match **m
        return 0;
 
 err_larbdev_put:
-       /* id may be not linear mapping, loop whole the array */
-       for (i = MTK_LARB_NR_MAX - 1; i >= 0; i++) {
+       for (i = MTK_LARB_NR_MAX - 1; i >= 0; i--) {
                if (!data->larb_imu[i].dev)
                        continue;
                put_device(data->larb_imu[i].dev);