Re: drivers/gpu/drm/i915/display/intel_display.c:3934 skl_plane_stride() error: testing array offset 'color_plane' after use.

From: Ville Syrjälä
Date: Mon Sep 16 2019 - 08:43:49 EST


On Mon, Sep 16, 2019 at 10:59:13AM +0300, Dan Carpenter wrote:
> On Mon, Sep 16, 2019 at 10:31:35AM +0300, Jani Nikula wrote:
> > On Sat, 14 Sep 2019, Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote:
> > > tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux.git master
> > > head: a7f89616b7376495424f682b6086e0c391a89a1d
> > > commit: df0566a641f959108c152be748a0a58794280e0e drm/i915: move modesetting core code under display/
> > > date: 3 months ago
> > >
> > > If you fix the issue, kindly add following tag
> > > Reported-by: kbuild test robot <lkp@xxxxxxxxx>
> > > Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> > >
> > > New smatch warnings:
> > > drivers/gpu/drm/i915/display/intel_display.c:3934 skl_plane_stride() error: testing array offset 'color_plane' after use.

The code looks fine to me. int color_plane is 0 or 1 so we know
the color_plane[] array is has enough elements. But if
fb->num_planes==1 we don't actually want to look at color_plane[1].

> > > drivers/gpu/drm/i915/display/intel_display.c:16328 intel_sanitize_encoder() error: we previously assumed 'crtc' could be null (see line 16318)

If crtc_state!=NULL then crtc!=NULL. Looks safe to me.

> >
> > Odd, what changed to provoke the warnings now? Or is the smatch test
> > new?
> >
>
> It looks like the cross function DB is out of data slightly. Maybe
> because the file moved? On my system Smatch knows that color_plane is
> 0-1 and plane_state->color_plane[] is a two element array so it doesn't
> print the warning.
>
> This is just a sanity check which is never triggered. Should the sanity
> check be move? What was originally intended? It's hard to say.
>
> regards,
> dan carpenter

--
Ville Syrjälä
Intel