OSDN Git Service
(root)
/
uclinux-h8
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
f2f46b8
)
drm/msm: Init mm_list before accessing it for use_vram path
author
Alexey Minnekhanov
<alexeymin@postmarketos.org>
Tue, 18 May 2021 10:26:24 +0000
(13:26 +0300)
committer
Rob Clark
<robdclark@chromium.org>
Tue, 8 Jun 2021 17:08:04 +0000
(10:08 -0700)
Fix NULL pointer dereference caused by update_inactive()
trying to list_del() an uninitialized mm_list who's
prev/next pointers are NULL.
Fixes:
64fcbde772c7
("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>
drivers/gpu/drm/msm/msm_gem.c
patch
|
blob
|
history
diff --git
a/drivers/gpu/drm/msm/msm_gem.c
b/drivers/gpu/drm/msm/msm_gem.c
index
56df86e
..
369d91e
100644
(file)
--- a/
drivers/gpu/drm/msm/msm_gem.c
+++ b/
drivers/gpu/drm/msm/msm_gem.c
@@
-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);