[Intel-gfx] [kbuild] Re: [PATCH v4 09/11] drm/i915: migrate skl planes code new file

Dan Carpenter dan.carpenter at oracle.com
Wed Dec 16 15:21:36 UTC 2020


Hi Jani,

url:    https://github.com/0day-ci/linux/commits/Jani-Nikula/drm-i915-refactor-intel-display/20201216-194754 
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: x86_64-randconfig-m001-20201216 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>
Reported-by: Dan Carpenter <dan.carpenter at oracle.com>

smatch warnings:
drivers/gpu/drm/i915/display/intel_gen9_plane.c:712 skl_update_scaler_plane() error: we previously assumed 'fb' could be null (see line 696)

vim +/fb +712 drivers/gpu/drm/i915/display/intel_gen9_plane.c

44f5af76b2fd05e Dave Airlie 2020-12-16  672  int skl_update_scaler_plane(struct intel_crtc_state *crtc_state,
44f5af76b2fd05e Dave Airlie 2020-12-16  673  			    struct intel_plane_state *plane_state)
44f5af76b2fd05e Dave Airlie 2020-12-16  674  {
44f5af76b2fd05e Dave Airlie 2020-12-16  675  	struct intel_plane *intel_plane =
44f5af76b2fd05e Dave Airlie 2020-12-16  676  		to_intel_plane(plane_state->uapi.plane);
44f5af76b2fd05e Dave Airlie 2020-12-16  677  	struct drm_i915_private *dev_priv = to_i915(intel_plane->base.dev);
44f5af76b2fd05e Dave Airlie 2020-12-16  678  	struct drm_framebuffer *fb = plane_state->hw.fb;
44f5af76b2fd05e Dave Airlie 2020-12-16  679  	int ret;
44f5af76b2fd05e Dave Airlie 2020-12-16  680  	bool force_detach = !fb || !plane_state->uapi.visible;
44f5af76b2fd05e Dave Airlie 2020-12-16  681  	bool need_scaler = false;
44f5af76b2fd05e Dave Airlie 2020-12-16  682  
44f5af76b2fd05e Dave Airlie 2020-12-16  683  	/* Pre-gen11 and SDR planes always need a scaler for planar formats. */
44f5af76b2fd05e Dave Airlie 2020-12-16  684  	if (!icl_is_hdr_plane(dev_priv, intel_plane->id) &&
44f5af76b2fd05e Dave Airlie 2020-12-16  685  	    fb && intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier))
44f5af76b2fd05e Dave Airlie 2020-12-16  686  		need_scaler = true;
44f5af76b2fd05e Dave Airlie 2020-12-16  687  
44f5af76b2fd05e Dave Airlie 2020-12-16  688  	ret = skl_update_scaler(crtc_state, force_detach,
44f5af76b2fd05e Dave Airlie 2020-12-16  689  				drm_plane_index(&intel_plane->base),
44f5af76b2fd05e Dave Airlie 2020-12-16  690  				&plane_state->scaler_id,
44f5af76b2fd05e Dave Airlie 2020-12-16  691  				drm_rect_width(&plane_state->uapi.src) >> 16,
44f5af76b2fd05e Dave Airlie 2020-12-16  692  				drm_rect_height(&plane_state->uapi.src) >> 16,
44f5af76b2fd05e Dave Airlie 2020-12-16  693  				drm_rect_width(&plane_state->uapi.dst),
44f5af76b2fd05e Dave Airlie 2020-12-16  694  				drm_rect_height(&plane_state->uapi.dst),
44f5af76b2fd05e Dave Airlie 2020-12-16  695  				fb ? fb->format : NULL,
44f5af76b2fd05e Dave Airlie 2020-12-16 @696  				fb ? fb->modifier : 0,
                                                                        ^^^^^^^^^^^^^^^^^
This code and all previous code assumes that "fb" can be NULL.

44f5af76b2fd05e Dave Airlie 2020-12-16  697  				need_scaler);
44f5af76b2fd05e Dave Airlie 2020-12-16  698  
44f5af76b2fd05e Dave Airlie 2020-12-16  699  	if (ret || plane_state->scaler_id < 0)
                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^
Is this an error path?  Should we set "ret = -EINVAL;" for this?

44f5af76b2fd05e Dave Airlie 2020-12-16  700  		return ret;
44f5af76b2fd05e Dave Airlie 2020-12-16  701  
44f5af76b2fd05e Dave Airlie 2020-12-16  702  	/* check colorkey */
44f5af76b2fd05e Dave Airlie 2020-12-16  703  	if (plane_state->ckey.flags) {
44f5af76b2fd05e Dave Airlie 2020-12-16  704  		drm_dbg_kms(&dev_priv->drm,
44f5af76b2fd05e Dave Airlie 2020-12-16  705  			    "[PLANE:%d:%s] scaling with color key not allowed",
44f5af76b2fd05e Dave Airlie 2020-12-16  706  			    intel_plane->base.base.id,
44f5af76b2fd05e Dave Airlie 2020-12-16  707  			    intel_plane->base.name);
44f5af76b2fd05e Dave Airlie 2020-12-16  708  		return -EINVAL;
44f5af76b2fd05e Dave Airlie 2020-12-16  709  	}
44f5af76b2fd05e Dave Airlie 2020-12-16  710  
44f5af76b2fd05e Dave Airlie 2020-12-16  711  	/* Check src format */
44f5af76b2fd05e Dave Airlie 2020-12-16 @712  	switch (fb->format->format) {
                                                        ^^^^^^^^^^
Unchecked dereference.

44f5af76b2fd05e Dave Airlie 2020-12-16  713  	case DRM_FORMAT_RGB565:
44f5af76b2fd05e Dave Airlie 2020-12-16  714  	case DRM_FORMAT_XBGR8888:
44f5af76b2fd05e Dave Airlie 2020-12-16  715  	case DRM_FORMAT_XRGB8888:
44f5af76b2fd05e Dave Airlie 2020-12-16  716  	case DRM_FORMAT_ABGR8888:
44f5af76b2fd05e Dave Airlie 2020-12-16  717  	case DRM_FORMAT_ARGB8888:
44f5af76b2fd05e Dave Airlie 2020-12-16  718  	case DRM_FORMAT_XRGB2101010:

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 32945 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20201216/14b238e3/attachment-0001.gz>
-------------- next part --------------
_______________________________________________
kbuild mailing list -- kbuild at lists.01.org
To unsubscribe send an email to kbuild-leave at lists.01.org


More information about the Intel-gfx mailing list