[PATCH] drm/i915/dsi: Fix overflow issue in pclk parsing

Hogander, Jouni jouni.hogander at intel.com
Wed Aug 6 13:05:57 UTC 2025


On Wed, 2025-08-06 at 15:42 +0300, Jani Nikula wrote:
> On Wed, 06 Aug 2025, Jani Nikula <jani.nikula at linux.intel.com> wrote:
> > On Wed, 06 Aug 2025, Jouni Högander <jouni.hogander at intel.com>
> > wrote:
> > > Parsed divider p will overflow and is considered being valid
> > > divider in
> > > case pll_ctl == 0.
> > > 
> > > Fix this by using do while.
> > > 
> > > Signed-off-by: Jouni Högander <jouni.hogander at intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/display/vlv_dsi_pll.c | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> > > b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> > > index b52463fdec47..f56985c3da54 100644
> > > --- a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> > > +++ b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> > > @@ -142,10 +142,10 @@ static int vlv_dsi_pclk(struct
> > > intel_encoder *encoder,
> > >  	pll_div &= DSI_PLL_M1_DIV_MASK;
> > >  	pll_div = pll_div >> DSI_PLL_M1_DIV_SHIFT;
> > >  
> > > -	while (pll_ctl) {
> > > +	do {
> > >  		pll_ctl = pll_ctl >> 1;
> > >  		p++;
> > > -	}
> > > +	} while (pll_ctl);
> > >  	p--;
> > 
> > Alternatively, use p = lfs(pll_ctl), check the return value, and p-
> > -
> > after that?
> 
> Should be fls(). (Find last set.)

Yes, can be done that way as well. I will change the patch.

BR,

Jouni Högander

> 
> > 
> > 
> > >  
> > >  	if (!p) {
> 



More information about the Intel-gfx mailing list