mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] drm:sprd: Correct left shift operator evaluating constant expression
@ 2024-11-05 18:18 Karan Sanghavi
  2024-11-06  1:43 ` Chunyan Zhang
  0 siblings, 1 reply; 2+ messages in thread
From: Karan Sanghavi @ 2024-11-05 18:18 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter, Orson Zhai, Baolin Wang,
	Chunyan Zhang
  Cc: dri-devel, linux-kernel, Shuah Khan, Karan Sanghavi

The left shift operation followed by a mask with 0xf will
always result in 0. To correctly evaluate the expression for
the bitwise OR operation, use a right shift instead.

Reported by Coverity Scan CID: 1511468

Signed-off-by: Karan Sanghavi <karansanghvi98@gmail.com>
---
Coverity Scan Message:
CID 1511468: (#1 of 1): Wrong operator used (CONSTANT_EXPRESSION_RESULT)
operator_confusion: (pll->kint << 4) & 15 is always 0 regardless of the 
values of its operands. This occurs as the bitwise second operand of "|"
---
 drivers/gpu/drm/sprd/megacores_pll.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/sprd/megacores_pll.c b/drivers/gpu/drm/sprd/megacores_pll.c
index 3091dfdc11e3..43c10a5fc441 100644
--- a/drivers/gpu/drm/sprd/megacores_pll.c
+++ b/drivers/gpu/drm/sprd/megacores_pll.c
@@ -94,7 +94,7 @@ static void dphy_set_pll_reg(struct dphy_pll *pll, struct regmap *regmap)
 	reg_val[3] = pll->vco_band | (pll->sdm_en << 1) | (pll->refin << 2);
 	reg_val[4] = pll->kint >> 12;
 	reg_val[5] = pll->kint >> 4;
-	reg_val[6] = pll->out_sel | ((pll->kint << 4) & 0xf);
+	reg_val[6] = pll->out_sel | ((pll->kint >> 4) & 0xf);
 	reg_val[7] = 1 << 4;
 	reg_val[8] = pll->det_delay;
 

---
base-commit: 81983758430957d9a5cb3333fe324fd70cf63e7e
change-id: 20241105-coverity1511468wrongoperator-20130bcd4240

Best regards,
-- 
Karan Sanghavi <karansanghvi98@gmail.com>


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] drm:sprd: Correct left shift operator evaluating constant expression
  2024-11-05 18:18 [PATCH] drm:sprd: Correct left shift operator evaluating constant expression Karan Sanghavi
@ 2024-11-06  1:43 ` Chunyan Zhang
  0 siblings, 0 replies; 2+ messages in thread
From: Chunyan Zhang @ 2024-11-06  1:43 UTC (permalink / raw)
  To: Karan Sanghavi
  Cc: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter, Orson Zhai, Baolin Wang, dri-devel,
	linux-kernel, Shuah Khan

Hi Karan,

On Wed, 6 Nov 2024 at 02:19, Karan Sanghavi <karansanghvi98@gmail.com> wrote:
>
> The left shift operation followed by a mask with 0xf will
> always result in 0. To correctly evaluate the expression for
> the bitwise OR operation, use a right shift instead.
>
> Reported by Coverity Scan CID: 1511468

Should we add a fixes tag, so that the patch can be backported to the
stable branches.

Apart from that, the patch looks good to me, so,

Reviewed-by: Chunyan Zhang <zhang.lyra@gmail.com>

Thanks,
Chunyan

>
> Signed-off-by: Karan Sanghavi <karansanghvi98@gmail.com>
> ---
> Coverity Scan Message:
> CID 1511468: (#1 of 1): Wrong operator used (CONSTANT_EXPRESSION_RESULT)
> operator_confusion: (pll->kint << 4) & 15 is always 0 regardless of the
> values of its operands. This occurs as the bitwise second operand of "|"
> ---
>  drivers/gpu/drm/sprd/megacores_pll.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/sprd/megacores_pll.c b/drivers/gpu/drm/sprd/megacores_pll.c
> index 3091dfdc11e3..43c10a5fc441 100644
> --- a/drivers/gpu/drm/sprd/megacores_pll.c
> +++ b/drivers/gpu/drm/sprd/megacores_pll.c
> @@ -94,7 +94,7 @@ static void dphy_set_pll_reg(struct dphy_pll *pll, struct regmap *regmap)
>         reg_val[3] = pll->vco_band | (pll->sdm_en << 1) | (pll->refin << 2);
>         reg_val[4] = pll->kint >> 12;
>         reg_val[5] = pll->kint >> 4;
> -       reg_val[6] = pll->out_sel | ((pll->kint << 4) & 0xf);
> +       reg_val[6] = pll->out_sel | ((pll->kint >> 4) & 0xf);
>         reg_val[7] = 1 << 4;
>         reg_val[8] = pll->det_delay;
>
>
> ---
> base-commit: 81983758430957d9a5cb3333fe324fd70cf63e7e
> change-id: 20241105-coverity1511468wrongoperator-20130bcd4240
>
> Best regards,
> --
> Karan Sanghavi <karansanghvi98@gmail.com>
>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-11-06  1:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-11-05 18:18 [PATCH] drm:sprd: Correct left shift operator evaluating constant expression Karan Sanghavi
2024-11-06  1:43 ` Chunyan Zhang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®