CC: [email protected] In-Reply-To: <[email protected]> References: <[email protected]> TO: Philipp Zabel <[email protected]> TO: [email protected] CC: [email protected] CC: Thomas Zimmermann <[email protected]>
Hi Philipp, I love your patch! Perhaps something to improve: [auto build test WARNING on drm-intel/for-linux-next] [also build test WARNING on tegra-drm/drm/tegra/for-next drm-tip/drm-tip linus/master drm-exynos/exynos-drm-next v5.9-rc2 next-20200826] [cannot apply to drm/drm-next] [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/Philipp-Zabel/drm-add-drmm_encoder_alloc/20200826-203629 base: git://anongit.freedesktop.org/drm-intel for-linux-next :::::: branch date: 7 hours ago :::::: commit date: 7 hours ago config: x86_64-randconfig-m001-20200826 (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 <[email protected]> Reported-by: Dan Carpenter <[email protected]> New smatch warnings: drivers/gpu/drm/drm_plane.c:302 drm_universal_plane_init() error: uninitialized symbol 'ap'. drivers/gpu/drm/drm_plane.c:345 __drmm_universal_plane_alloc() error: uninitialized symbol 'ap'. Old smatch warnings: drivers/gpu/drm/drm_plane.c:117 create_in_format_blob() error: potential null dereference 'blob'. (drm_property_create_blob returns null) # https://github.com/0day-ci/linux/commit/d809a51da3d2939a84ecf6b4ada8f5be6c3ecb35 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Philipp-Zabel/drm-add-drmm_encoder_alloc/20200826-203629 git checkout d809a51da3d2939a84ecf6b4ada8f5be6c3ecb35 vim +/ap +302 drivers/gpu/drm/drm_plane.c d809a51da3d293 Philipp Zabel 2020-08-26 268 d809a51da3d293 Philipp Zabel 2020-08-26 269 /** d809a51da3d293 Philipp Zabel 2020-08-26 270 * drm_universal_plane_init - Initialize a new universal plane object d809a51da3d293 Philipp Zabel 2020-08-26 271 * @dev: DRM device d809a51da3d293 Philipp Zabel 2020-08-26 272 * @plane: plane object to init d809a51da3d293 Philipp Zabel 2020-08-26 273 * @possible_crtcs: bitmask of possible CRTCs d809a51da3d293 Philipp Zabel 2020-08-26 274 * @funcs: callbacks for the new plane d809a51da3d293 Philipp Zabel 2020-08-26 275 * @formats: array of supported formats (DRM_FORMAT\_\*) d809a51da3d293 Philipp Zabel 2020-08-26 276 * @format_count: number of elements in @formats d809a51da3d293 Philipp Zabel 2020-08-26 277 * @format_modifiers: array of struct drm_format modifiers terminated by d809a51da3d293 Philipp Zabel 2020-08-26 278 * DRM_FORMAT_MOD_INVALID d809a51da3d293 Philipp Zabel 2020-08-26 279 * @type: type of plane (overlay, primary, cursor) d809a51da3d293 Philipp Zabel 2020-08-26 280 * @name: printf style format string for the plane name, or NULL for default name d809a51da3d293 Philipp Zabel 2020-08-26 281 * d809a51da3d293 Philipp Zabel 2020-08-26 282 * Initializes a plane object of type @type. d809a51da3d293 Philipp Zabel 2020-08-26 283 * d809a51da3d293 Philipp Zabel 2020-08-26 284 * Returns: d809a51da3d293 Philipp Zabel 2020-08-26 285 * Zero on success, error code on failure. d809a51da3d293 Philipp Zabel 2020-08-26 286 */ d809a51da3d293 Philipp Zabel 2020-08-26 287 int drm_universal_plane_init(struct drm_device *dev, struct drm_plane *plane, d809a51da3d293 Philipp Zabel 2020-08-26 288 uint32_t possible_crtcs, d809a51da3d293 Philipp Zabel 2020-08-26 289 const struct drm_plane_funcs *funcs, d809a51da3d293 Philipp Zabel 2020-08-26 290 const uint32_t *formats, unsigned int format_count, d809a51da3d293 Philipp Zabel 2020-08-26 291 const uint64_t *format_modifiers, d809a51da3d293 Philipp Zabel 2020-08-26 292 enum drm_plane_type type, d809a51da3d293 Philipp Zabel 2020-08-26 293 const char *name, ...) d809a51da3d293 Philipp Zabel 2020-08-26 294 { d809a51da3d293 Philipp Zabel 2020-08-26 295 va_list ap; d809a51da3d293 Philipp Zabel 2020-08-26 296 int ret; d809a51da3d293 Philipp Zabel 2020-08-26 297 d809a51da3d293 Philipp Zabel 2020-08-26 298 if (name) d809a51da3d293 Philipp Zabel 2020-08-26 299 va_start(ap, name); d809a51da3d293 Philipp Zabel 2020-08-26 300 ret = __drm_universal_plane_init(dev, plane, possible_crtcs, funcs, d809a51da3d293 Philipp Zabel 2020-08-26 301 formats, format_count, format_modifiers, d809a51da3d293 Philipp Zabel 2020-08-26 @302 type, name, ap); d809a51da3d293 Philipp Zabel 2020-08-26 303 if (name) d809a51da3d293 Philipp Zabel 2020-08-26 304 va_end(ap); d809a51da3d293 Philipp Zabel 2020-08-26 305 return ret; d809a51da3d293 Philipp Zabel 2020-08-26 306 } 43968d7b806d7a Daniel Vetter 2016-09-21 307 EXPORT_SYMBOL(drm_universal_plane_init); 43968d7b806d7a Daniel Vetter 2016-09-21 308 d809a51da3d293 Philipp Zabel 2020-08-26 309 static void drmm_universal_plane_alloc_release(struct drm_device *dev, void *ptr) d809a51da3d293 Philipp Zabel 2020-08-26 310 { d809a51da3d293 Philipp Zabel 2020-08-26 311 struct drm_plane *plane = ptr; d809a51da3d293 Philipp Zabel 2020-08-26 312 d809a51da3d293 Philipp Zabel 2020-08-26 313 if (WARN_ON(!plane->dev)) d809a51da3d293 Philipp Zabel 2020-08-26 314 return; d809a51da3d293 Philipp Zabel 2020-08-26 315 d809a51da3d293 Philipp Zabel 2020-08-26 316 drm_plane_cleanup(plane); d809a51da3d293 Philipp Zabel 2020-08-26 317 } d809a51da3d293 Philipp Zabel 2020-08-26 318 d809a51da3d293 Philipp Zabel 2020-08-26 319 void *__drmm_universal_plane_alloc(struct drm_device *dev, size_t size, d809a51da3d293 Philipp Zabel 2020-08-26 320 size_t offset, uint32_t possible_crtcs, d809a51da3d293 Philipp Zabel 2020-08-26 321 const struct drm_plane_funcs *funcs, d809a51da3d293 Philipp Zabel 2020-08-26 322 const uint32_t *formats, unsigned int format_count, d809a51da3d293 Philipp Zabel 2020-08-26 323 const uint64_t *format_modifiers, d809a51da3d293 Philipp Zabel 2020-08-26 324 enum drm_plane_type type, d809a51da3d293 Philipp Zabel 2020-08-26 325 const char *name, ...) d809a51da3d293 Philipp Zabel 2020-08-26 326 { d809a51da3d293 Philipp Zabel 2020-08-26 327 void *container; d809a51da3d293 Philipp Zabel 2020-08-26 328 struct drm_plane *plane; d809a51da3d293 Philipp Zabel 2020-08-26 329 va_list ap; d809a51da3d293 Philipp Zabel 2020-08-26 330 int ret; d809a51da3d293 Philipp Zabel 2020-08-26 331 d809a51da3d293 Philipp Zabel 2020-08-26 332 if (!funcs || funcs->destroy) d809a51da3d293 Philipp Zabel 2020-08-26 333 return ERR_PTR(-EINVAL); d809a51da3d293 Philipp Zabel 2020-08-26 334 d809a51da3d293 Philipp Zabel 2020-08-26 335 container = drmm_kzalloc(dev, size, GFP_KERNEL); d809a51da3d293 Philipp Zabel 2020-08-26 336 if (!container) d809a51da3d293 Philipp Zabel 2020-08-26 337 return ERR_PTR(-ENOMEM); d809a51da3d293 Philipp Zabel 2020-08-26 338 d809a51da3d293 Philipp Zabel 2020-08-26 339 plane = container + offset; d809a51da3d293 Philipp Zabel 2020-08-26 340 d809a51da3d293 Philipp Zabel 2020-08-26 341 if (name) d809a51da3d293 Philipp Zabel 2020-08-26 342 va_start(ap, name); d809a51da3d293 Philipp Zabel 2020-08-26 343 ret = __drm_universal_plane_init(dev, plane, possible_crtcs, funcs, d809a51da3d293 Philipp Zabel 2020-08-26 344 formats, format_count, format_modifiers, d809a51da3d293 Philipp Zabel 2020-08-26 @345 type, name, ap); d809a51da3d293 Philipp Zabel 2020-08-26 346 if (name) d809a51da3d293 Philipp Zabel 2020-08-26 347 va_end(ap); d809a51da3d293 Philipp Zabel 2020-08-26 348 if (ret) d809a51da3d293 Philipp Zabel 2020-08-26 349 return ERR_PTR(ret); d809a51da3d293 Philipp Zabel 2020-08-26 350 d809a51da3d293 Philipp Zabel 2020-08-26 351 ret = drmm_add_action_or_reset(dev, drmm_universal_plane_alloc_release, d809a51da3d293 Philipp Zabel 2020-08-26 352 plane); d809a51da3d293 Philipp Zabel 2020-08-26 353 if (ret) d809a51da3d293 Philipp Zabel 2020-08-26 354 return ERR_PTR(ret); d809a51da3d293 Philipp Zabel 2020-08-26 355 d809a51da3d293 Philipp Zabel 2020-08-26 356 return container; d809a51da3d293 Philipp Zabel 2020-08-26 357 } d809a51da3d293 Philipp Zabel 2020-08-26 358 EXPORT_SYMBOL(__drmm_universal_plane_alloc); d809a51da3d293 Philipp Zabel 2020-08-26 359 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
