Skip to content

Commit

Permalink
qseecom: Improve app_block_wq processing
Browse files Browse the repository at this point in the history
remove interrupt signal mask before waiting, and
Wake up all threads waiting in app_block_wq.

Change-Id: I0b441c2fd8a4f829c356492a8facd56f92c97884
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
Signed-off-by: Forenche <prahul2003@gmail.com>
  • Loading branch information
Zhen Kong authored and mylove90 committed Feb 12, 2024
1 parent 69a1ed1 commit 70d3e5a
Showing 1 changed file with 5 additions and 13 deletions.
18 changes: 5 additions & 13 deletions drivers/misc/qseecom.c
Original file line number Diff line number Diff line change
Expand Up @@ -2519,12 +2519,8 @@ static void __qseecom_reentrancy_check_if_no_app_blocked(uint32_t smc_id)
/* thread sleep until this app unblocked */
while (qseecom.app_block_ref_cnt > 0) {
mutex_unlock(&app_access_lock);
do {
if (!wait_event_interruptible(
qseecom.app_block_wq,
(qseecom.app_block_ref_cnt == 0)))
break;
} while (1);
wait_event_interruptible(qseecom.app_block_wq,
(!qseecom.app_block_ref_cnt));
mutex_lock(&app_access_lock);
}
}
Expand All @@ -2543,13 +2539,9 @@ static void __qseecom_reentrancy_check_if_this_app_blocked(
while (ptr_app->app_blocked || qseecom.app_block_ref_cnt > 1) {
/* thread sleep until this app unblocked */
mutex_unlock(&app_access_lock);
do {
if (!wait_event_interruptible(
qseecom.app_block_wq,
(!ptr_app->app_blocked &&
qseecom.app_block_ref_cnt <= 1)))
break;
} while (1);
wait_event_interruptible(qseecom.app_block_wq,
(!ptr_app->app_blocked &&
qseecom.app_block_ref_cnt <= 1));
mutex_lock(&app_access_lock);
}
ptr_app->check_block--;
Expand Down

0 comments on commit 70d3e5a

Please sign in to comment.