summaryrefslogtreecommitdiff
path: root/mali_kbase/csf/mali_kbase_csf_firmware_no_mali.c
diff options
context:
space:
mode:
authorKevin Park <Youngeun.Park@arm.com>2023-12-08 17:01:50 +0000
committerRenato Grottesi <otaner@google.com>2023-12-11 12:57:25 +0000
commit2226bae46b7a606e97a9ced0e91d7209cd04758c (patch)
treec5d287e0fd9699c37b4c42a40ece494c848f5b5a /mali_kbase/csf/mali_kbase_csf_firmware_no_mali.c
parentcab5dbbee97ee9e3baa41d00372363a2f53196e0 (diff)
downloadgpu-2226bae46b7a606e97a9ced0e91d7209cd04758c.tar.gz
Fix deadlock BTW user thread and page fault worker
MIDCET-4882,GPUCORE-40989 Break deadlock BTW user thread and page fault worker This commit adds a RW semaphore 1> to prevent MMU operations during P.Mode entrance and 2> to break the deadlock on 'kctx reg_lock' between user thread and page-fault worker thread. Bug: 301064831 Signed-off-by: Renato Grottesi <otaner@google.com> Test: manual run of the use case from the ticket Provenance: https://code.ipdelivery.arm.com/c/GPU/mali-ddk/+/6221 Change-Id: I692f8fafc558a6a45b5ca4210aa3f66c2617553f
Diffstat (limited to 'mali_kbase/csf/mali_kbase_csf_firmware_no_mali.c')
-rw-r--r--mali_kbase/csf/mali_kbase_csf_firmware_no_mali.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/mali_kbase/csf/mali_kbase_csf_firmware_no_mali.c b/mali_kbase/csf/mali_kbase_csf_firmware_no_mali.c
index 764c18d..93d7c36 100644
--- a/mali_kbase/csf/mali_kbase_csf_firmware_no_mali.c
+++ b/mali_kbase/csf/mali_kbase_csf_firmware_no_mali.c
@@ -1179,6 +1179,7 @@ int kbase_csf_firmware_early_init(struct kbase_device *kbdev)
kbase_csf_firmware_reload_worker);
INIT_WORK(&kbdev->csf.fw_error_work, firmware_error_worker);
+ init_rwsem(&kbdev->csf.pmode_sync_sem);
mutex_init(&kbdev->csf.reg_lock);
kbase_csf_pending_gpuq_kicks_init(kbdev);