From: kernel test robot <lkp@intel.com> To: "Tomi Valkeinen" <tomi.valkeinen@ti.com>, dri-devel@lists.freedesktop.org, "Daniel Vetter" <daniel@ffwll.ch>, "Ville Syrjälä" <ville.syrjala@linux.intel.com>, "Laurent Pinchart" <laurent.pinchart@ideasonboard.com> Cc: Paul Cercueil <paul@crapouillou.net>, kbuild-all@lists.01.org, David Airlie <airlied@linux.ie>, Sandy Huang <hjc@rock-chips.com>, Philippe Cornu <philippe.cornu@st.com>, Yannick Fertre <yannick.fertre@st.com>, Russell King <linux@armlinux.org.uk> Subject: Re: [PATCH v2 2/2] drm: automatic legacy gamma support Date: Fri, 11 Dec 2020 02:06:21 +0800 [thread overview] Message-ID: <202012110104.ZPkkhoVT-lkp@intel.com> (raw) In-Reply-To: <20201208135759.451772-3-tomi.valkeinen@ti.com> [-- Attachment #1: Type: text/plain, Size: 4308 bytes --] Hi Tomi, I love your patch! Perhaps something to improve: [auto build test WARNING on drm-intel/for-linux-next] [also build test WARNING on linus/master v5.10-rc7] [cannot apply to drm-tip/drm-tip anholt/for-next next-20201210] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Tomi-Valkeinen/drm-fix-and-cleanup-legacy-gamma-support/20201208-215917 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: i386-randconfig-m021-20201209 (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@intel.com> New smatch warnings: drivers/gpu/drm/drm_color_mgmt.c:307 drm_crtc_legacy_gamma_set() error: potential null dereference 'blob'. (drm_property_create_blob returns null) Old smatch warnings: drivers/gpu/drm/drm_color_mgmt.c:214 drm_mode_crtc_set_gamma_size() warn: double check that we're allocating correct size: 2 vs 6 vim +/blob +307 drivers/gpu/drm/drm_color_mgmt.c 253 254 /** 255 * drm_crtc_legacy_gamma_set - set the legacy gamma correction table 256 * @crtc: CRTC object 257 * @red: red correction table 258 * @green: green correction table 259 * @blue: green correction table 260 * @size: size of the tables 261 * @ctx: lock acquire context 262 * 263 * Implements support for legacy gamma correction table for drivers 264 * that have set drm_crtc_funcs.gamma_set or that support color management 265 * through the DEGAMMA_LUT/GAMMA_LUT properties. See 266 * drm_crtc_enable_color_mgmt() and the containing chapter for 267 * how the atomic color management and gamma tables work. 268 * 269 * This function sets the gamma using the first one available: 270 * - drm_crtc_funcs.gamma_set() 271 * - GAMMA_LUT 272 * - DEGAMMA_LUT 273 */ 274 int drm_crtc_legacy_gamma_set(struct drm_crtc *crtc, 275 u16 *red, u16 *green, u16 *blue, 276 uint32_t size, 277 struct drm_modeset_acquire_ctx *ctx) 278 { 279 struct drm_device *dev = crtc->dev; 280 struct drm_atomic_state *state; 281 struct drm_crtc_state *crtc_state; 282 struct drm_property_blob *blob = NULL; 283 struct drm_color_lut *blob_data; 284 int i, ret = 0; 285 bool replaced; 286 287 if (crtc->funcs->gamma_set) 288 return crtc->funcs->gamma_set(crtc, red, green, blue, size, ctx); 289 290 if (!crtc->has_gamma_prop && !crtc->has_degamma_prop) 291 return -ENODEV; 292 293 state = drm_atomic_state_alloc(crtc->dev); 294 if (!state) 295 return -ENOMEM; 296 297 blob = drm_property_create_blob(dev, 298 sizeof(struct drm_color_lut) * size, 299 NULL); 300 if (IS_ERR(blob)) { 301 ret = PTR_ERR(blob); 302 blob = NULL; 303 goto fail; 304 } 305 306 /* Prepare GAMMA_LUT with the legacy values. */ > 307 blob_data = blob->data; 308 for (i = 0; i < size; i++) { 309 blob_data[i].red = red[i]; 310 blob_data[i].green = green[i]; 311 blob_data[i].blue = blue[i]; 312 } 313 314 state->acquire_ctx = ctx; 315 crtc_state = drm_atomic_get_crtc_state(state, crtc); 316 if (IS_ERR(crtc_state)) { 317 ret = PTR_ERR(crtc_state); 318 goto fail; 319 } 320 321 /* Set GAMMA/DEGAMMA_LUT and reset DEGAMMA/GAMMA_LUT and CTM */ 322 replaced = drm_property_replace_blob(&crtc_state->degamma_lut, 323 crtc->has_gamma_prop ? NULL : blob); 324 replaced |= drm_property_replace_blob(&crtc_state->ctm, NULL); 325 replaced |= drm_property_replace_blob(&crtc_state->gamma_lut, 326 crtc->has_gamma_prop ? blob : NULL); 327 crtc_state->color_mgmt_changed |= replaced; 328 329 ret = drm_atomic_commit(state); 330 331 fail: 332 drm_atomic_state_put(state); 333 drm_property_blob_put(blob); 334 return ret; 335 } 336 EXPORT_SYMBOL(drm_crtc_legacy_gamma_set); 337 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 36289 bytes --] [-- Attachment #3: Type: text/plain, Size: 160 bytes --] _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com> To: kbuild-all@lists.01.org Subject: Re: [PATCH v2 2/2] drm: automatic legacy gamma support Date: Fri, 11 Dec 2020 02:06:21 +0800 [thread overview] Message-ID: <202012110104.ZPkkhoVT-lkp@intel.com> (raw) In-Reply-To: <20201208135759.451772-3-tomi.valkeinen@ti.com> [-- Attachment #1: Type: text/plain, Size: 4426 bytes --] Hi Tomi, I love your patch! Perhaps something to improve: [auto build test WARNING on drm-intel/for-linux-next] [also build test WARNING on linus/master v5.10-rc7] [cannot apply to drm-tip/drm-tip anholt/for-next next-20201210] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Tomi-Valkeinen/drm-fix-and-cleanup-legacy-gamma-support/20201208-215917 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: i386-randconfig-m021-20201209 (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@intel.com> New smatch warnings: drivers/gpu/drm/drm_color_mgmt.c:307 drm_crtc_legacy_gamma_set() error: potential null dereference 'blob'. (drm_property_create_blob returns null) Old smatch warnings: drivers/gpu/drm/drm_color_mgmt.c:214 drm_mode_crtc_set_gamma_size() warn: double check that we're allocating correct size: 2 vs 6 vim +/blob +307 drivers/gpu/drm/drm_color_mgmt.c 253 254 /** 255 * drm_crtc_legacy_gamma_set - set the legacy gamma correction table 256 * @crtc: CRTC object 257 * @red: red correction table 258 * @green: green correction table 259 * @blue: green correction table 260 * @size: size of the tables 261 * @ctx: lock acquire context 262 * 263 * Implements support for legacy gamma correction table for drivers 264 * that have set drm_crtc_funcs.gamma_set or that support color management 265 * through the DEGAMMA_LUT/GAMMA_LUT properties. See 266 * drm_crtc_enable_color_mgmt() and the containing chapter for 267 * how the atomic color management and gamma tables work. 268 * 269 * This function sets the gamma using the first one available: 270 * - drm_crtc_funcs.gamma_set() 271 * - GAMMA_LUT 272 * - DEGAMMA_LUT 273 */ 274 int drm_crtc_legacy_gamma_set(struct drm_crtc *crtc, 275 u16 *red, u16 *green, u16 *blue, 276 uint32_t size, 277 struct drm_modeset_acquire_ctx *ctx) 278 { 279 struct drm_device *dev = crtc->dev; 280 struct drm_atomic_state *state; 281 struct drm_crtc_state *crtc_state; 282 struct drm_property_blob *blob = NULL; 283 struct drm_color_lut *blob_data; 284 int i, ret = 0; 285 bool replaced; 286 287 if (crtc->funcs->gamma_set) 288 return crtc->funcs->gamma_set(crtc, red, green, blue, size, ctx); 289 290 if (!crtc->has_gamma_prop && !crtc->has_degamma_prop) 291 return -ENODEV; 292 293 state = drm_atomic_state_alloc(crtc->dev); 294 if (!state) 295 return -ENOMEM; 296 297 blob = drm_property_create_blob(dev, 298 sizeof(struct drm_color_lut) * size, 299 NULL); 300 if (IS_ERR(blob)) { 301 ret = PTR_ERR(blob); 302 blob = NULL; 303 goto fail; 304 } 305 306 /* Prepare GAMMA_LUT with the legacy values. */ > 307 blob_data = blob->data; 308 for (i = 0; i < size; i++) { 309 blob_data[i].red = red[i]; 310 blob_data[i].green = green[i]; 311 blob_data[i].blue = blue[i]; 312 } 313 314 state->acquire_ctx = ctx; 315 crtc_state = drm_atomic_get_crtc_state(state, crtc); 316 if (IS_ERR(crtc_state)) { 317 ret = PTR_ERR(crtc_state); 318 goto fail; 319 } 320 321 /* Set GAMMA/DEGAMMA_LUT and reset DEGAMMA/GAMMA_LUT and CTM */ 322 replaced = drm_property_replace_blob(&crtc_state->degamma_lut, 323 crtc->has_gamma_prop ? NULL : blob); 324 replaced |= drm_property_replace_blob(&crtc_state->ctm, NULL); 325 replaced |= drm_property_replace_blob(&crtc_state->gamma_lut, 326 crtc->has_gamma_prop ? blob : NULL); 327 crtc_state->color_mgmt_changed |= replaced; 328 329 ret = drm_atomic_commit(state); 330 331 fail: 332 drm_atomic_state_put(state); 333 drm_property_blob_put(blob); 334 return ret; 335 } 336 EXPORT_SYMBOL(drm_crtc_legacy_gamma_set); 337 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 36289 bytes --]
next prev parent reply other threads:[~2020-12-10 18:06 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-12-08 13:57 [PATCH v2 0/2] drm: fix and cleanup legacy gamma support Tomi Valkeinen 2020-12-08 13:57 ` [PATCH v2 1/2] drm: add legacy support for using degamma for gamma Tomi Valkeinen 2020-12-08 15:55 ` Laurent Pinchart 2020-12-09 0:51 ` Daniel Vetter 2020-12-09 11:17 ` Tomi Valkeinen 2020-12-09 12:39 ` Daniel Vetter 2020-12-08 13:57 ` [PATCH v2 2/2] drm: automatic legacy gamma support Tomi Valkeinen 2020-12-08 15:59 ` Laurent Pinchart 2020-12-09 5:20 ` kernel test robot 2020-12-09 5:20 ` kernel test robot 2020-12-10 18:06 ` kernel test robot [this message] 2020-12-10 18:06 ` kernel test robot 2020-12-11 11:24 ` Tomi Valkeinen 2020-12-11 11:24 ` Tomi Valkeinen 2020-12-11 14:42 ` Ville Syrjälä 2020-12-11 14:42 ` Ville Syrjälä 2020-12-12 8:54 ` [kbuild-all] " Philip Li 2020-12-12 8:54 ` Philip Li 2020-12-14 18:49 ` [kbuild-all] " Dan Carpenter 2020-12-14 18:49 ` Dan Carpenter 2020-12-16 1:06 ` [kbuild-all] " Philip Li 2020-12-16 1:06 ` Philip Li 2020-12-16 7:34 ` [kbuild-all] " Dan Carpenter 2020-12-16 7:34 ` Dan Carpenter
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=202012110104.ZPkkhoVT-lkp@intel.com \ --to=lkp@intel.com \ --cc=airlied@linux.ie \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=hjc@rock-chips.com \ --cc=kbuild-all@lists.01.org \ --cc=laurent.pinchart@ideasonboard.com \ --cc=linux@armlinux.org.uk \ --cc=paul@crapouillou.net \ --cc=philippe.cornu@st.com \ --cc=tomi.valkeinen@ti.com \ --cc=ville.syrjala@linux.intel.com \ --cc=yannick.fertre@st.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.