drm/msm: Add priv->mm_lock to protect active/inactive lists
Rather than relying on the big dev->struct_mutex hammer, introduce a more specific lock for protecting the bo lists. Change-Id: I4c876a1c3ae51ff62372703a99a8daff0c4a7950 Signed-off-by: Rob Clark <robdclark@chromium.org> Git-commit: d984457b31c4c53d2af374d5e78b3eb64debd483 Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git [samtran@codeaurora.org: avoid changes related to debugfs and shrinker] Signed-off-by: Samantha Tran <samtran@codeaurora.org>
Цей коміт міститься в:
@@ -888,8 +888,19 @@ struct msm_drm_private {
|
||||
struct msm_rd_state *hangrd; /* debugfs to dump hanging submits */
|
||||
struct msm_perf_state *perf;
|
||||
|
||||
/* list of GEM objects: */
|
||||
/*
|
||||
* List of inactive GEM objects. Every bo is either in the inactive_list
|
||||
* or gpu->active_list (for the gpu it is active on[1])
|
||||
*
|
||||
* These lists are protected by mm_lock. If struct_mutex is involved, it
|
||||
* should be aquired prior to mm_lock. One should *not* hold mm_lock in
|
||||
* get_pages()/vmap()/etc paths, as they can trigger the shrinker.
|
||||
*
|
||||
* [1] if someone ever added support for the old 2d cores, there could be
|
||||
* more than one gpu object
|
||||
*/
|
||||
struct list_head inactive_list;
|
||||
struct mutex mm_lock;
|
||||
|
||||
/* worker for delayed free of objects: */
|
||||
struct work_struct free_work;
|
||||
|
Посилання в новій задачі
Заблокувати користувача