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: 64fcbde772
("drm/msm: Track potentially evictable objects")
Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
Link: https://lore.kernel.org/r/20210518102624.1193955-1-alexeymin@postmarketos.org
Signed-off-by: Rob Clark <robdclark@chromium.org>
This commit is contained in:
parent
f2f46b8787
commit
45f5669005
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user