Re: [PATCH] iommu/mediatek: Remove a unnecessary checking for larbid

From: Yong Wu (吴勇)
Date: Wed Jul 05 2023 - 02:50:59 EST


On Tue, 2023-07-04 at 14:19 +0200, AngeloGioacchino Del Regno wrote:
>
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> Il 04/07/23 13:56, Yong Wu ha scritto:
> > Fix a coverity issue:
> >
> >>> assignment: Assigning: larbid = (fwspec->ids[0] >> 5) & 0x1fU.
> > larbid = MTK_M4U_TO_LARB(fwspec->ids[0]);
> >>> between: At condition larbid >= 32U, the value of larbid must be
> between
> >>> 0 and 31.
> >>> dead_error_condition: The condition larbid >= 32U cannot be true.
> > if (larbid >= MTK_LARB_NR_MAX)
> >>> CID 11306470 (#1 of 1): Logically dead code (DEADCODE)
> >>> dead_error_line: Execution cannot reach this statement:
> >>> return ERR_PTR(-22L);
> > return ERR_PTR(-EINVAL);
> >
> > The checking "if (larbid >= MTK_LARB_NR_MAX)" is unnecessary.
> >
>
> I agree with the coverity tool in that after the transformation
> (going through
> the definition of MTK_M4U_TO_LARB) the check is pointless, but I
> think that the
> right fix here is to check for validity of fwspec->ids[0] instead of
> simply
> removing validation.
>
> Having no validation after mtk_iommu_probe_device() is fine, but
> that's
> because we assume that *this* function performs all validation steps.

There already is validation code at the point later in this function.

"if (!larbdev) return ERR_PTR(-EINVAL);" //if the larbid is invalid.

This patch just removes a deadcode.

>
> Regards,
> Angelo
>
> > Signed-off-by: Yong Wu <yong.wu@xxxxxxxxxxxx>
> > ---
> > Rebase on v6.4-rc1.
> > ---
> > drivers/iommu/mtk_iommu.c | 3 ---
> > 1 file changed, 3 deletions(-)
> >
> > diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
> > index aecc7d154f28..67caa90b481b 100644
> > --- a/drivers/iommu/mtk_iommu.c
> > +++ b/drivers/iommu/mtk_iommu.c
> > @@ -838,9 +838,6 @@ static struct iommu_device
> *mtk_iommu_probe_device(struct device *dev)
> > * All the ports in each a device should be in the same larbs.
> > */
> > larbid = MTK_M4U_TO_LARB(fwspec->ids[0]);
> > -if (larbid >= MTK_LARB_NR_MAX)
> > -return ERR_PTR(-EINVAL);
> > -
> > for (i = 1; i < fwspec->num_ids; i++) {
> > larbidx = MTK_M4U_TO_LARB(fwspec->ids[i]);
> > if (larbid != larbidx) {
>
>