Commit 45f56690 authored by Alexey Minnekhanov's avatar Alexey Minnekhanov Committed by Rob Clark
Browse files

drm/msm: Init mm_list before accessing it for use_vram path



Fix NULL pointer dereference caused by update_inactive()
trying to list_del() an uninitialized mm_list who's
prev/next pointers are NULL.

Fixes: 64fcbde7 ("drm/msm: Track potentially evictable objects")
Signed-off-by: default avatarAlexey Minnekhanov <alexeymin@postmarketos.org>
Link: https://lore.kernel.org/r/20210518102624.1193955-1-alexeymin@postmarketos.org


Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
parent f2f46b87
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1241,6 +1241,13 @@ static struct drm_gem_object *_msm_gem_new(struct drm_device *dev,

		to_msm_bo(obj)->vram_node = &vma->node;

		/* Call chain get_pages() -> update_inactive() tries to
		 * access msm_obj->mm_list, but it is not initialized yet.
		 * To avoid NULL pointer dereference error, initialize
		 * mm_list to be empty.
		 */
		INIT_LIST_HEAD(&msm_obj->mm_list);

		msm_gem_lock(obj);
		pages = get_pages(obj);
		msm_gem_unlock(obj);