drm/msm: fix unsigned comparison with less than zero
authorColin Ian King <colin.king@canonical.com>
Tue, 21 Aug 2018 11:55:19 +0000 (12:55 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 27 Jan 2020 13:49:57 +0000 (14:49 +0100)
[ Upstream commit dfdb3be43ef1195c491e6c3760b922acb52e3575 ]

The return from the call to _mixer_stages can be a negative error
code however this is being assigned to an unsigned variable 'stages'
hence the check is always false. Fix this by making 'stages' an
int.

Detected by Coccinelle ("Unsigned expression compared with zero:
stages < 0")

Fixes: 25fdd5933e4c ("drm/msm: Add SDM845 DPU support")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c

index 06be7cf..79bafea 100644 (file)
@@ -310,7 +310,7 @@ static void dpu_hw_ctl_setup_blendstage(struct dpu_hw_ctl *ctx,
        u32 mixercfg = 0, mixercfg_ext = 0, mix, ext;
        u32 mixercfg_ext2 = 0, mixercfg_ext3 = 0;
        int i, j;
-       u8 stages;
+       int stages;
        int pipes_per_stage;
 
        stages = _mixer_stages(ctx->mixer_hw_caps, ctx->mixer_count, lm);