msm: kgsl: Remove debugfs directory inside lock

In kgsl_process_private_close, debugfs directory is removed after mutex
is unlocked. Considering this, a race can be created between
kgsl_process_private_close and kgsl_process_init_debugfs. Fix it by
moving debugfs directory removal inside lock.

Change-Id: Ida65ab8a3825d8c695c56556860495cce853117c
Signed-off-by: Kamal Agrawal <kamaagra@codeaurora.org>
This commit is contained in:
Kamal Agrawal 2021-01-13 09:14:19 +05:30
commit a6185ebfcb

View file

@ -989,16 +989,15 @@ static void kgsl_process_private_close(struct kgsl_device_private *dev_priv,
list_del(&private->list);
write_unlock(&kgsl_driver.proclist_lock);
debugfs_remove_recursive(private->debug_root);
/*
* Unlock the mutex before releasing the memory and the debugfs
* nodes - this prevents deadlocks with the IOMMU and debugfs
* locks.
* Unlock the mutex before releasing the memory - this prevents a
* deadlock with the IOMMU mutex if a page fault occurs.
*/
mutex_unlock(&kgsl_driver.process_mutex);
process_release_memory(private);
debugfs_remove_recursive(private->debug_root);
kgsl_process_private_put(private);
}