[PATCH] drm/msm: Fix error return checking

From: Wen Yang
Date: Thu Nov 29 2018 - 01:09:43 EST


The error checks on ret for a negative error return always fails because
the return value of iommu_map_sg() is unsigned and can never be negative.

Detected with Coccinelle:
drivers/gpu/drm/msm/msm_iommu.c:69:9-12: WARNING: Unsigned expression
compared with zero: ret < 0

Signed-off-by: Wen Yang <wen.yang99@xxxxxxxxxx>
CC: Rob Clark <robdclark@xxxxxxxxx>
CC: David Airlie <airlied@xxxxxxxx>
CC: Julia Lawall <julia.lawall@xxxxxxx>
CC: linux-arm-msm@xxxxxxxxxxxxxxx
CC: dri-devel@xxxxxxxxxxxxxxxxxxxxx
CC: freedreno@xxxxxxxxxxxxxxxxxxxxx
CC: linux-kernel@xxxxxxxxxxxxxxx
---
drivers/gpu/drm/msm/msm_iommu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/msm_iommu.c b/drivers/gpu/drm/msm/msm_iommu.c
index b23d33622f37..2a90aa4caec0 100644
--- a/drivers/gpu/drm/msm/msm_iommu.c
+++ b/drivers/gpu/drm/msm/msm_iommu.c
@@ -66,7 +66,7 @@ static int msm_iommu_map(struct msm_mmu *mmu, uint64_t iova,
// pm_runtime_get_sync(mmu->dev);
ret = iommu_map_sg(iommu->domain, iova, sgt->sgl, sgt->nents, prot);
// pm_runtime_put_sync(mmu->dev);
- WARN_ON(ret < 0);
+ WARN_ON(!ret);

return (ret == len) ? 0 : -EINVAL;
}
--
2.19.1