linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* drivers/gpu/drm/i915/display/intel_display.c:3934 skl_plane_stride() error: testing array offset 'color_plane' after use.
@ 2019-09-14  4:08 Dan Carpenter
  2019-09-16  7:31 ` Jani Nikula
  0 siblings, 1 reply; 4+ messages in thread
From: Dan Carpenter @ 2019-09-14  4:08 UTC (permalink / raw)
  To: kbuild, Jani Nikula; +Cc: kbuild-all, linux-kernel, Chris Wilson

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@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/gpu/drm/i915/display/intel_display.c:3934 skl_plane_stride() error: testing array offset 'color_plane' after use.
drivers/gpu/drm/i915/display/intel_display.c:16328 intel_sanitize_encoder() error: we previously assumed 'crtc' could be null (see line 16318)

git remote add linus https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux.git
git remote update linus
git checkout df0566a641f959108c152be748a0a58794280e0e
vim +/color_plane +3934 drivers/gpu/drm/i915/display/intel_display.c

b3cf5c06ca5001 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-25  3926  
df79cf44191029 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-11  3927  u32 skl_plane_stride(const struct intel_plane_state *plane_state,
5d2a19507cb665 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-07  3928  		     int color_plane)
d21967740f4b7d drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2016-01-28  3929  {
df79cf44191029 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-11  3930  	const struct drm_framebuffer *fb = plane_state->base.fb;
df79cf44191029 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-11  3931  	unsigned int rotation = plane_state->base.rotation;
5d2a19507cb665 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-07  3932  	u32 stride = plane_state->color_plane[color_plane].stride;
                                                                                                                              ^^^^^^^^^^^
Out of bounds read?

1b500535c513ac drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2017-03-07  3933  
5d2a19507cb665 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-07 @3934  	if (color_plane >= fb->format->num_planes)
                                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Tested too late.

1b500535c513ac drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2017-03-07  3935  		return 0;
1b500535c513ac drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2017-03-07  3936  
b3cf5c06ca5001 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-25  3937  	return stride / skl_plane_stride_mult(fb, color_plane, rotation);
d21967740f4b7d drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2016-01-28  3938  }
d21967740f4b7d drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2016-01-28  3939  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

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

* Re: drivers/gpu/drm/i915/display/intel_display.c:3934 skl_plane_stride() error: testing array offset 'color_plane' after use.
  2019-09-14  4:08 drivers/gpu/drm/i915/display/intel_display.c:3934 skl_plane_stride() error: testing array offset 'color_plane' after use Dan Carpenter
@ 2019-09-16  7:31 ` Jani Nikula
  2019-09-16  7:59   ` Dan Carpenter
  0 siblings, 1 reply; 4+ messages in thread
From: Jani Nikula @ 2019-09-16  7:31 UTC (permalink / raw)
  To: Dan Carpenter, kbuild
  Cc: kbuild-all, linux-kernel, Chris Wilson, intel-gfx,
	Ville Syrjälä

On Sat, 14 Sep 2019, Dan Carpenter <dan.carpenter@oracle.com> 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@intel.com>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
>
> New smatch warnings:
> drivers/gpu/drm/i915/display/intel_display.c:3934 skl_plane_stride() error: testing array offset 'color_plane' after use.
> drivers/gpu/drm/i915/display/intel_display.c:16328 intel_sanitize_encoder() error: we previously assumed 'crtc' could be null (see line 16318)

Odd, what changed to provoke the warnings now? Or is the smatch test
new?

Anyway, Cc: Ville & intel-gfx.

BR,
Jani.


>
> git remote add linus https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux.git
> git remote update linus
> git checkout df0566a641f959108c152be748a0a58794280e0e
> vim +/color_plane +3934 drivers/gpu/drm/i915/display/intel_display.c
>
> b3cf5c06ca5001 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-25  3926  
> df79cf44191029 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-11  3927  u32 skl_plane_stride(const struct intel_plane_state *plane_state,
> 5d2a19507cb665 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-07  3928  		     int color_plane)
> d21967740f4b7d drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2016-01-28  3929  {
> df79cf44191029 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-11  3930  	const struct drm_framebuffer *fb = plane_state->base.fb;
> df79cf44191029 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-11  3931  	unsigned int rotation = plane_state->base.rotation;
> 5d2a19507cb665 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-07  3932  	u32 stride = plane_state->color_plane[color_plane].stride;
>                                                                                                                               ^^^^^^^^^^^
> Out of bounds read?
>
> 1b500535c513ac drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2017-03-07  3933  
> 5d2a19507cb665 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-07 @3934  	if (color_plane >= fb->format->num_planes)
>                                                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Tested too late.
>
> 1b500535c513ac drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2017-03-07  3935  		return 0;
> 1b500535c513ac drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2017-03-07  3936  
> b3cf5c06ca5001 drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2018-09-25  3937  	return stride / skl_plane_stride_mult(fb, color_plane, rotation);
> d21967740f4b7d drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2016-01-28  3938  }
> d21967740f4b7d drivers/gpu/drm/i915/intel_display.c Ville Syrjälä 2016-01-28  3939  
>
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: drivers/gpu/drm/i915/display/intel_display.c:3934 skl_plane_stride() error: testing array offset 'color_plane' after use.
  2019-09-16  7:31 ` Jani Nikula
@ 2019-09-16  7:59   ` Dan Carpenter
  2019-09-16 12:43     ` Ville Syrjälä
  0 siblings, 1 reply; 4+ messages in thread
From: Dan Carpenter @ 2019-09-16  7:59 UTC (permalink / raw)
  To: Jani Nikula
  Cc: kbuild, kbuild-all, linux-kernel, Chris Wilson, intel-gfx,
	Ville Syrjälä

On Mon, Sep 16, 2019 at 10:31:35AM +0300, Jani Nikula wrote:
> On Sat, 14 Sep 2019, Dan Carpenter <dan.carpenter@oracle.com> 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@intel.com>
> > Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> >
> > New smatch warnings:
> > drivers/gpu/drm/i915/display/intel_display.c:3934 skl_plane_stride() error: testing array offset 'color_plane' after use.
> > drivers/gpu/drm/i915/display/intel_display.c:16328 intel_sanitize_encoder() error: we previously assumed 'crtc' could be null (see line 16318)
> 
> 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


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

* Re: drivers/gpu/drm/i915/display/intel_display.c:3934 skl_plane_stride() error: testing array offset 'color_plane' after use.
  2019-09-16  7:59   ` Dan Carpenter
@ 2019-09-16 12:43     ` Ville Syrjälä
  0 siblings, 0 replies; 4+ messages in thread
From: Ville Syrjälä @ 2019-09-16 12:43 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: Jani Nikula, kbuild, kbuild-all, linux-kernel, Chris Wilson, intel-gfx

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@oracle.com> 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@intel.com>
> > > Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> > >
> > > 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

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

end of thread, other threads:[~2019-09-16 12:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-14  4:08 drivers/gpu/drm/i915/display/intel_display.c:3934 skl_plane_stride() error: testing array offset 'color_plane' after use Dan Carpenter
2019-09-16  7:31 ` Jani Nikula
2019-09-16  7:59   ` Dan Carpenter
2019-09-16 12:43     ` Ville Syrjälä

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).