[radeon-alex:amd-staging-drm-next 773/843] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3388:8-15: ERROR: acrtc is NULL but dereferenced. (fwd)

Julia Lawall julia.lawall at lip6.fr
Tue Aug 15 11:42:50 UTC 2017


The NULL comment is referring to the path to line 3388 via line 3360.  But
if the value is not NULL, there will be an update of previously freed
memory.

julia

---------- Forwarded message ----------
Date: Tue, 15 Aug 2017 18:58:51 +0800
From: kbuild test robot <fengguang.wu at intel.com>
To: kbuild at 01.org
Cc: Julia Lawall <julia.lawall at lip6.fr>
Subject: [radeon-alex:amd-staging-drm-next 773/843]
    drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3388:8-15:
    ERROR: acrtc is NULL but dereferenced.

CC: kbuild-all at 01.org
CC: dri-devel at lists.freedesktop.org
TO: Harry Wentland <harry.wentland at amd.com>
CC: Alex Deucher <alexander.deucher at amd.com>
CC: Tony Cheng <Tony.Cheng at amd.com>

tree:   git://people.freedesktop.org/~agd5f/linux.git amd-staging-drm-next
head:   aec1199c9095951449e3932fac49ddeb9e99884a
commit: 6d597da6c6c4b58a79887039db8fe5b221ccef3f [773/843] drm/amd/display: Fix ckeckpatch problems in amdgpu_dm
:::::: branch date: 12 hours ago
:::::: commit date: 14 hours ago

>> drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3388:8-15: ERROR: acrtc is NULL but dereferenced.

git remote add radeon-alex git://people.freedesktop.org/~agd5f/linux.git
git remote update radeon-alex
git checkout 6d597da6c6c4b58a79887039db8fe5b221ccef3f
vim +3388 drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c

83b1852f6 Harry Wentland 2017-08-10  3341
83b1852f6 Harry Wentland 2017-08-10  3342  int amdgpu_dm_crtc_init(struct amdgpu_display_manager *dm,
83b1852f6 Harry Wentland 2017-08-10  3343  			struct drm_plane *plane,
83b1852f6 Harry Wentland 2017-08-10  3344  			uint32_t crtc_index)
83b1852f6 Harry Wentland 2017-08-10  3345  {
83b1852f6 Harry Wentland 2017-08-10  3346  	struct amdgpu_crtc *acrtc = NULL;
83b1852f6 Harry Wentland 2017-08-10  3347  	struct amdgpu_plane *cursor_plane;
83b1852f6 Harry Wentland 2017-08-10  3348
83b1852f6 Harry Wentland 2017-08-10  3349  	int res = -ENOMEM;
83b1852f6 Harry Wentland 2017-08-10  3350
83b1852f6 Harry Wentland 2017-08-10  3351  	cursor_plane = kzalloc(sizeof(*cursor_plane), GFP_KERNEL);
83b1852f6 Harry Wentland 2017-08-10  3352  	if (!cursor_plane)
83b1852f6 Harry Wentland 2017-08-10  3353  		goto fail;
83b1852f6 Harry Wentland 2017-08-10  3354
83b1852f6 Harry Wentland 2017-08-10  3355  	cursor_plane->base.type = DRM_PLANE_TYPE_CURSOR;
83b1852f6 Harry Wentland 2017-08-10  3356  	res = amdgpu_dm_plane_init(dm, cursor_plane, 0);
83b1852f6 Harry Wentland 2017-08-10  3357
83b1852f6 Harry Wentland 2017-08-10  3358  	acrtc = kzalloc(sizeof(struct amdgpu_crtc), GFP_KERNEL);
83b1852f6 Harry Wentland 2017-08-10  3359  	if (!acrtc)
83b1852f6 Harry Wentland 2017-08-10  3360  		goto fail;
83b1852f6 Harry Wentland 2017-08-10  3361
83b1852f6 Harry Wentland 2017-08-10  3362  	res = drm_crtc_init_with_planes(
83b1852f6 Harry Wentland 2017-08-10  3363  			dm->ddev,
83b1852f6 Harry Wentland 2017-08-10  3364  			&acrtc->base,
83b1852f6 Harry Wentland 2017-08-10  3365  			plane,
83b1852f6 Harry Wentland 2017-08-10  3366  			&cursor_plane->base,
83b1852f6 Harry Wentland 2017-08-10  3367  			&amdgpu_dm_crtc_funcs, NULL);
83b1852f6 Harry Wentland 2017-08-10  3368
83b1852f6 Harry Wentland 2017-08-10  3369  	if (res)
83b1852f6 Harry Wentland 2017-08-10  3370  		goto fail;
83b1852f6 Harry Wentland 2017-08-10  3371
83b1852f6 Harry Wentland 2017-08-10  3372  	drm_crtc_helper_add(&acrtc->base, &amdgpu_dm_crtc_helper_funcs);
83b1852f6 Harry Wentland 2017-08-10  3373
83b1852f6 Harry Wentland 2017-08-10  3374  	acrtc->max_cursor_width = dm->adev->dm.dc->caps.max_cursor_size;
83b1852f6 Harry Wentland 2017-08-10  3375  	acrtc->max_cursor_height = dm->adev->dm.dc->caps.max_cursor_size;
83b1852f6 Harry Wentland 2017-08-10  3376
83b1852f6 Harry Wentland 2017-08-10  3377  	acrtc->crtc_id = crtc_index;
83b1852f6 Harry Wentland 2017-08-10  3378  	acrtc->base.enabled = false;
83b1852f6 Harry Wentland 2017-08-10  3379
83b1852f6 Harry Wentland 2017-08-10  3380  	dm->adev->mode_info.crtcs[crtc_index] = acrtc;
83b1852f6 Harry Wentland 2017-08-10  3381  	drm_mode_crtc_set_gamma_size(&acrtc->base, 256);
83b1852f6 Harry Wentland 2017-08-10  3382
83b1852f6 Harry Wentland 2017-08-10  3383  	return 0;
83b1852f6 Harry Wentland 2017-08-10  3384
83b1852f6 Harry Wentland 2017-08-10  3385  fail:
83b1852f6 Harry Wentland 2017-08-10  3386  	kfree(acrtc);
83b1852f6 Harry Wentland 2017-08-10  3387  	kfree(cursor_plane);
83b1852f6 Harry Wentland 2017-08-10 @3388  	acrtc->crtc_id = -1;
83b1852f6 Harry Wentland 2017-08-10  3389  	return res;
83b1852f6 Harry Wentland 2017-08-10  3390  }
83b1852f6 Harry Wentland 2017-08-10  3391

:::::: The code at line 3388 was first introduced by commit
:::::: 83b1852f69c8d142d274f932b5a72bac2bf50953 drm/amd/display: Merge amdgpu_dm_types and amdgpu_dm

:::::: TO: Harry Wentland <harry.wentland at amd.com>
:::::: CC: Alex Deucher <alexander.deucher at amd.com>

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


More information about the dri-devel mailing list