tree:
git://anongit.freedesktop.org/drm/drm-intel drm-intel-next
head: 81637a6ede89b95b6ea7b2f8c594676881110890
commit: 714b1cdb02ee670be1ec5b1190377fef3845acd9 [7/8] drm/i915: refactor skylake scaler
code into new file.
config: x86_64-randconfig-m031-20210211 (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(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
drivers/gpu/drm/i915/display/skl_scaler.c:253 skl_update_scaler_plane() error: we
previously assumed 'fb' could be null (see line 237)
vim +/fb +253 drivers/gpu/drm/i915/display/skl_scaler.c
714b1cdb02ee67 Dave Airlie 2021-02-05 213 int skl_update_scaler_plane(struct
intel_crtc_state *crtc_state,
714b1cdb02ee67 Dave Airlie 2021-02-05 214 struct intel_plane_state *plane_state)
714b1cdb02ee67 Dave Airlie 2021-02-05 215 {
714b1cdb02ee67 Dave Airlie 2021-02-05 216 struct intel_plane *intel_plane =
714b1cdb02ee67 Dave Airlie 2021-02-05 217 to_intel_plane(plane_state->uapi.plane);
714b1cdb02ee67 Dave Airlie 2021-02-05 218 struct drm_i915_private *dev_priv =
to_i915(intel_plane->base.dev);
714b1cdb02ee67 Dave Airlie 2021-02-05 219 struct drm_framebuffer *fb =
plane_state->hw.fb;
714b1cdb02ee67 Dave Airlie 2021-02-05 220 int ret;
714b1cdb02ee67 Dave Airlie 2021-02-05 221 bool force_detach = !fb ||
!plane_state->uapi.visible;
All this code assumes "fb" can be NULL.
714b1cdb02ee67 Dave Airlie 2021-02-05 222 bool need_scaler = false;
714b1cdb02ee67 Dave Airlie 2021-02-05 223
714b1cdb02ee67 Dave Airlie 2021-02-05 224 /* Pre-gen11 and SDR planes always need a
scaler for planar formats. */
714b1cdb02ee67 Dave Airlie 2021-02-05 225 if (!icl_is_hdr_plane(dev_priv,
intel_plane->id) &&
714b1cdb02ee67 Dave Airlie 2021-02-05 226 fb &&
intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier))
714b1cdb02ee67 Dave Airlie 2021-02-05 227 need_scaler = true;
714b1cdb02ee67 Dave Airlie 2021-02-05 228
714b1cdb02ee67 Dave Airlie 2021-02-05 229 ret = skl_update_scaler(crtc_state,
force_detach,
714b1cdb02ee67 Dave Airlie 2021-02-05 230
drm_plane_index(&intel_plane->base),
714b1cdb02ee67 Dave Airlie 2021-02-05 231 &plane_state->scaler_id,
714b1cdb02ee67 Dave Airlie 2021-02-05 232
drm_rect_width(&plane_state->uapi.src) >> 16,
714b1cdb02ee67 Dave Airlie 2021-02-05 233
drm_rect_height(&plane_state->uapi.src) >> 16,
714b1cdb02ee67 Dave Airlie 2021-02-05 234
drm_rect_width(&plane_state->uapi.dst),
714b1cdb02ee67 Dave Airlie 2021-02-05 235
drm_rect_height(&plane_state->uapi.dst),
714b1cdb02ee67 Dave Airlie 2021-02-05 236 fb ? fb->format : NULL,
714b1cdb02ee67 Dave Airlie 2021-02-05 @237 fb ? fb->modifier : 0,
714b1cdb02ee67 Dave Airlie 2021-02-05 238 need_scaler);
714b1cdb02ee67 Dave Airlie 2021-02-05 239
714b1cdb02ee67 Dave Airlie 2021-02-05 240 if (ret || plane_state->scaler_id < 0)
714b1cdb02ee67 Dave Airlie 2021-02-05 241 return ret;
714b1cdb02ee67 Dave Airlie 2021-02-05 242
714b1cdb02ee67 Dave Airlie 2021-02-05 243 /* check colorkey */
714b1cdb02ee67 Dave Airlie 2021-02-05 244 if (plane_state->ckey.flags) {
714b1cdb02ee67 Dave Airlie 2021-02-05 245 drm_dbg_kms(&dev_priv->drm,
714b1cdb02ee67 Dave Airlie 2021-02-05 246 "[PLANE:%d:%s] scaling with color
key not allowed",
714b1cdb02ee67 Dave Airlie 2021-02-05 247 intel_plane->base.base.id,
714b1cdb02ee67 Dave Airlie 2021-02-05 248 intel_plane->base.name);
714b1cdb02ee67 Dave Airlie 2021-02-05 249 return -EINVAL;
714b1cdb02ee67 Dave Airlie 2021-02-05 250 }
714b1cdb02ee67 Dave Airlie 2021-02-05 251
714b1cdb02ee67 Dave Airlie 2021-02-05 252 /* Check src format */
714b1cdb02ee67 Dave Airlie 2021-02-05 @253 switch (fb->format->format) {
^^^^^^^^^^^^
Unchecked dereference.
714b1cdb02ee67 Dave Airlie 2021-02-05 254 case DRM_FORMAT_RGB565:
714b1cdb02ee67 Dave Airlie 2021-02-05 255 case DRM_FORMAT_XBGR8888:
714b1cdb02ee67 Dave Airlie 2021-02-05 256 case DRM_FORMAT_XRGB8888:
714b1cdb02ee67 Dave Airlie 2021-02-05 257 case DRM_FORMAT_ABGR8888:
714b1cdb02ee67 Dave Airlie 2021-02-05 258 case DRM_FORMAT_ARGB8888:
714b1cdb02ee67 Dave Airlie 2021-02-05 259 case DRM_FORMAT_XRGB2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05 260 case DRM_FORMAT_XBGR2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05 261 case DRM_FORMAT_ARGB2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05 262 case DRM_FORMAT_ABGR2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05 263 case DRM_FORMAT_YUYV:
714b1cdb02ee67 Dave Airlie 2021-02-05 264 case DRM_FORMAT_YVYU:
714b1cdb02ee67 Dave Airlie 2021-02-05 265 case DRM_FORMAT_UYVY:
714b1cdb02ee67 Dave Airlie 2021-02-05 266 case DRM_FORMAT_VYUY:
714b1cdb02ee67 Dave Airlie 2021-02-05 267 case DRM_FORMAT_NV12:
714b1cdb02ee67 Dave Airlie 2021-02-05 268 case DRM_FORMAT_XYUV8888:
714b1cdb02ee67 Dave Airlie 2021-02-05 269 case DRM_FORMAT_P010:
714b1cdb02ee67 Dave Airlie 2021-02-05 270 case DRM_FORMAT_P012:
714b1cdb02ee67 Dave Airlie 2021-02-05 271 case DRM_FORMAT_P016:
714b1cdb02ee67 Dave Airlie 2021-02-05 272 case DRM_FORMAT_Y210:
714b1cdb02ee67 Dave Airlie 2021-02-05 273 case DRM_FORMAT_Y212:
714b1cdb02ee67 Dave Airlie 2021-02-05 274 case DRM_FORMAT_Y216:
714b1cdb02ee67 Dave Airlie 2021-02-05 275 case DRM_FORMAT_XVYU2101010:
714b1cdb02ee67 Dave Airlie 2021-02-05 276 case DRM_FORMAT_XVYU12_16161616:
714b1cdb02ee67 Dave Airlie 2021-02-05 277 case DRM_FORMAT_XVYU16161616:
714b1cdb02ee67 Dave Airlie 2021-02-05 278 break;
714b1cdb02ee67 Dave Airlie 2021-02-05 279 case DRM_FORMAT_XBGR16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05 280 case DRM_FORMAT_ABGR16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05 281 case DRM_FORMAT_XRGB16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05 282 case DRM_FORMAT_ARGB16161616F:
714b1cdb02ee67 Dave Airlie 2021-02-05 283 if (INTEL_GEN(dev_priv) >= 11)
714b1cdb02ee67 Dave Airlie 2021-02-05 284 break;
714b1cdb02ee67 Dave Airlie 2021-02-05 285 fallthrough;
714b1cdb02ee67 Dave Airlie 2021-02-05 286 default:
714b1cdb02ee67 Dave Airlie 2021-02-05 287 drm_dbg_kms(&dev_priv->drm,
714b1cdb02ee67 Dave Airlie 2021-02-05 288 "[PLANE:%d:%s] FB:%d unsupported
scaling format 0x%x\n",
714b1cdb02ee67 Dave Airlie 2021-02-05 289 intel_plane->base.base.id,
intel_plane->base.name,
714b1cdb02ee67 Dave Airlie 2021-02-05 290 fb->base.id,
fb->format->format);
714b1cdb02ee67 Dave Airlie 2021-02-05 291 return -EINVAL;
714b1cdb02ee67 Dave Airlie 2021-02-05 292 }
714b1cdb02ee67 Dave Airlie 2021-02-05 293
714b1cdb02ee67 Dave Airlie 2021-02-05 294 return 0;
714b1cdb02ee67 Dave Airlie 2021-02-05 295 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org