Loading drivers/misc/qseecom.c +13 −11 Original line number Original line Diff line number Diff line Loading @@ -1378,7 +1378,7 @@ static int qseecom_register_listener(struct qseecom_dev_handle *data, pr_debug("register %d has to wait\n", pr_debug("register %d has to wait\n", rcvd_lstnr.listener_id); rcvd_lstnr.listener_id); mutex_unlock(&listener_access_lock); mutex_unlock(&listener_access_lock); ret = wait_event_freezable( ret = wait_event_interruptible( qseecom.register_lsnr_pending_wq, qseecom.register_lsnr_pending_wq, list_empty( list_empty( &qseecom.unregister_lsnr_pending_list_head)); &qseecom.unregister_lsnr_pending_list_head)); Loading Loading @@ -1452,7 +1452,7 @@ static int __qseecom_unregister_listener(struct qseecom_dev_handle *data, } } while (atomic_read(&data->ioctl_count) > 1) { while (atomic_read(&data->ioctl_count) > 1) { if (wait_event_freezable(data->abort_wq, if (wait_event_interruptible(data->abort_wq, atomic_read(&data->ioctl_count) <= 1)) { atomic_read(&data->ioctl_count) <= 1)) { pr_err("Interrupted from abort\n"); pr_err("Interrupted from abort\n"); ret = -ERESTARTSYS; ret = -ERESTARTSYS; Loading Loading @@ -1557,7 +1557,7 @@ static void __wakeup_unregister_listener_kthread(void) static int __qseecom_unregister_listener_kthread_func(void *data) static int __qseecom_unregister_listener_kthread_func(void *data) { { while (!kthread_should_stop()) { while (!kthread_should_stop()) { wait_event_freezable( wait_event_interruptible( qseecom.unregister_lsnr_kthread_wq, qseecom.unregister_lsnr_kthread_wq, atomic_read(&qseecom.unregister_lsnr_kthread_state) atomic_read(&qseecom.unregister_lsnr_kthread_state) == LSNR_UNREG_KT_WAKEUP); == LSNR_UNREG_KT_WAKEUP); Loading Loading @@ -1977,14 +1977,14 @@ static int __qseecom_process_incomplete_cmd(struct qseecom_dev_handle *data, * send_resp_flag. * send_resp_flag. */ */ if (!qseecom.qsee_reentrancy_support && if (!qseecom.qsee_reentrancy_support && !wait_event_freezable(qseecom.send_resp_wq, !wait_event_interruptible(qseecom.send_resp_wq, __qseecom_listener_has_sent_rsp( __qseecom_listener_has_sent_rsp( data, ptr_svc))) { data, ptr_svc))) { break; break; } } if (qseecom.qsee_reentrancy_support && if (qseecom.qsee_reentrancy_support && !wait_event_freezable(qseecom.send_resp_wq, !wait_event_interruptible(qseecom.send_resp_wq, __qseecom_reentrancy_listener_has_sent_rsp( __qseecom_reentrancy_listener_has_sent_rsp( data, ptr_svc))) { data, ptr_svc))) { break; break; Loading Loading @@ -2175,7 +2175,7 @@ static int __qseecom_process_reentrancy_blocked_on_listener( ptr_app->app_blocked = true; ptr_app->app_blocked = true; mutex_unlock(&listener_access_lock); mutex_unlock(&listener_access_lock); mutex_unlock(&app_access_lock); mutex_unlock(&app_access_lock); wait_event_freezable( wait_event_interruptible( list_ptr->listener_block_app_wq, list_ptr->listener_block_app_wq, !list_ptr->listener_in_use); !list_ptr->listener_in_use); mutex_lock(&app_access_lock); mutex_lock(&app_access_lock); Loading Loading @@ -2308,7 +2308,7 @@ static int __qseecom_reentrancy_process_incomplete_cmd( mutex_unlock(&listener_access_lock); mutex_unlock(&listener_access_lock); mutex_unlock(&app_access_lock); mutex_unlock(&app_access_lock); do { do { if (!wait_event_freezable(qseecom.send_resp_wq, if (!wait_event_interruptible(qseecom.send_resp_wq, __qseecom_reentrancy_listener_has_sent_rsp( __qseecom_reentrancy_listener_has_sent_rsp( data, ptr_svc))) { data, ptr_svc))) { break; break; Loading Loading @@ -2463,7 +2463,8 @@ static void __qseecom_reentrancy_check_if_no_app_blocked(uint32_t smc_id) sigprocmask(SIG_SETMASK, &new_sigset, &old_sigset); sigprocmask(SIG_SETMASK, &new_sigset, &old_sigset); mutex_unlock(&app_access_lock); mutex_unlock(&app_access_lock); do { do { if (!wait_event_freezable(qseecom.app_block_wq, if (!wait_event_interruptible( qseecom.app_block_wq, (qseecom.app_block_ref_cnt == 0))) (qseecom.app_block_ref_cnt == 0))) break; break; } while (1); } while (1); Loading Loading @@ -2491,7 +2492,8 @@ static void __qseecom_reentrancy_check_if_this_app_blocked( sigprocmask(SIG_SETMASK, &new_sigset, &old_sigset); sigprocmask(SIG_SETMASK, &new_sigset, &old_sigset); mutex_unlock(&app_access_lock); mutex_unlock(&app_access_lock); do { do { if (!wait_event_freezable(qseecom.app_block_wq, if (!wait_event_interruptible( qseecom.app_block_wq, (!ptr_app->app_blocked && (!ptr_app->app_blocked && qseecom.app_block_ref_cnt <= 1))) qseecom.app_block_ref_cnt <= 1))) break; break; Loading Loading @@ -2830,7 +2832,7 @@ static int __qseecom_cleanup_app(struct qseecom_dev_handle *data) if (qseecom.qsee_reentrancy_support) if (qseecom.qsee_reentrancy_support) mutex_unlock(&app_access_lock); mutex_unlock(&app_access_lock); while (atomic_read(&data->ioctl_count) > 1) { while (atomic_read(&data->ioctl_count) > 1) { if (wait_event_freezable(data->abort_wq, if (wait_event_interruptible(data->abort_wq, atomic_read(&data->ioctl_count) <= 1)) { atomic_read(&data->ioctl_count) <= 1)) { pr_err("Interrupted from abort\n"); pr_err("Interrupted from abort\n"); ret = -ERESTARTSYS; ret = -ERESTARTSYS; Loading Loading @@ -4140,7 +4142,7 @@ static int qseecom_receive_req(struct qseecom_dev_handle *data) mutex_unlock(&listener_access_lock); mutex_unlock(&listener_access_lock); while (1) { while (1) { if (wait_event_freezable(this_lstnr->rcv_req_wq, if (wait_event_interruptible(this_lstnr->rcv_req_wq, __qseecom_listener_has_rcvd_req(data, __qseecom_listener_has_rcvd_req(data, this_lstnr))) { this_lstnr))) { pr_debug("Interrupted: exiting Listener Service = %d\n", pr_debug("Interrupted: exiting Listener Service = %d\n", Loading Loading
drivers/misc/qseecom.c +13 −11 Original line number Original line Diff line number Diff line Loading @@ -1378,7 +1378,7 @@ static int qseecom_register_listener(struct qseecom_dev_handle *data, pr_debug("register %d has to wait\n", pr_debug("register %d has to wait\n", rcvd_lstnr.listener_id); rcvd_lstnr.listener_id); mutex_unlock(&listener_access_lock); mutex_unlock(&listener_access_lock); ret = wait_event_freezable( ret = wait_event_interruptible( qseecom.register_lsnr_pending_wq, qseecom.register_lsnr_pending_wq, list_empty( list_empty( &qseecom.unregister_lsnr_pending_list_head)); &qseecom.unregister_lsnr_pending_list_head)); Loading Loading @@ -1452,7 +1452,7 @@ static int __qseecom_unregister_listener(struct qseecom_dev_handle *data, } } while (atomic_read(&data->ioctl_count) > 1) { while (atomic_read(&data->ioctl_count) > 1) { if (wait_event_freezable(data->abort_wq, if (wait_event_interruptible(data->abort_wq, atomic_read(&data->ioctl_count) <= 1)) { atomic_read(&data->ioctl_count) <= 1)) { pr_err("Interrupted from abort\n"); pr_err("Interrupted from abort\n"); ret = -ERESTARTSYS; ret = -ERESTARTSYS; Loading Loading @@ -1557,7 +1557,7 @@ static void __wakeup_unregister_listener_kthread(void) static int __qseecom_unregister_listener_kthread_func(void *data) static int __qseecom_unregister_listener_kthread_func(void *data) { { while (!kthread_should_stop()) { while (!kthread_should_stop()) { wait_event_freezable( wait_event_interruptible( qseecom.unregister_lsnr_kthread_wq, qseecom.unregister_lsnr_kthread_wq, atomic_read(&qseecom.unregister_lsnr_kthread_state) atomic_read(&qseecom.unregister_lsnr_kthread_state) == LSNR_UNREG_KT_WAKEUP); == LSNR_UNREG_KT_WAKEUP); Loading Loading @@ -1977,14 +1977,14 @@ static int __qseecom_process_incomplete_cmd(struct qseecom_dev_handle *data, * send_resp_flag. * send_resp_flag. */ */ if (!qseecom.qsee_reentrancy_support && if (!qseecom.qsee_reentrancy_support && !wait_event_freezable(qseecom.send_resp_wq, !wait_event_interruptible(qseecom.send_resp_wq, __qseecom_listener_has_sent_rsp( __qseecom_listener_has_sent_rsp( data, ptr_svc))) { data, ptr_svc))) { break; break; } } if (qseecom.qsee_reentrancy_support && if (qseecom.qsee_reentrancy_support && !wait_event_freezable(qseecom.send_resp_wq, !wait_event_interruptible(qseecom.send_resp_wq, __qseecom_reentrancy_listener_has_sent_rsp( __qseecom_reentrancy_listener_has_sent_rsp( data, ptr_svc))) { data, ptr_svc))) { break; break; Loading Loading @@ -2175,7 +2175,7 @@ static int __qseecom_process_reentrancy_blocked_on_listener( ptr_app->app_blocked = true; ptr_app->app_blocked = true; mutex_unlock(&listener_access_lock); mutex_unlock(&listener_access_lock); mutex_unlock(&app_access_lock); mutex_unlock(&app_access_lock); wait_event_freezable( wait_event_interruptible( list_ptr->listener_block_app_wq, list_ptr->listener_block_app_wq, !list_ptr->listener_in_use); !list_ptr->listener_in_use); mutex_lock(&app_access_lock); mutex_lock(&app_access_lock); Loading Loading @@ -2308,7 +2308,7 @@ static int __qseecom_reentrancy_process_incomplete_cmd( mutex_unlock(&listener_access_lock); mutex_unlock(&listener_access_lock); mutex_unlock(&app_access_lock); mutex_unlock(&app_access_lock); do { do { if (!wait_event_freezable(qseecom.send_resp_wq, if (!wait_event_interruptible(qseecom.send_resp_wq, __qseecom_reentrancy_listener_has_sent_rsp( __qseecom_reentrancy_listener_has_sent_rsp( data, ptr_svc))) { data, ptr_svc))) { break; break; Loading Loading @@ -2463,7 +2463,8 @@ static void __qseecom_reentrancy_check_if_no_app_blocked(uint32_t smc_id) sigprocmask(SIG_SETMASK, &new_sigset, &old_sigset); sigprocmask(SIG_SETMASK, &new_sigset, &old_sigset); mutex_unlock(&app_access_lock); mutex_unlock(&app_access_lock); do { do { if (!wait_event_freezable(qseecom.app_block_wq, if (!wait_event_interruptible( qseecom.app_block_wq, (qseecom.app_block_ref_cnt == 0))) (qseecom.app_block_ref_cnt == 0))) break; break; } while (1); } while (1); Loading Loading @@ -2491,7 +2492,8 @@ static void __qseecom_reentrancy_check_if_this_app_blocked( sigprocmask(SIG_SETMASK, &new_sigset, &old_sigset); sigprocmask(SIG_SETMASK, &new_sigset, &old_sigset); mutex_unlock(&app_access_lock); mutex_unlock(&app_access_lock); do { do { if (!wait_event_freezable(qseecom.app_block_wq, if (!wait_event_interruptible( qseecom.app_block_wq, (!ptr_app->app_blocked && (!ptr_app->app_blocked && qseecom.app_block_ref_cnt <= 1))) qseecom.app_block_ref_cnt <= 1))) break; break; Loading Loading @@ -2830,7 +2832,7 @@ static int __qseecom_cleanup_app(struct qseecom_dev_handle *data) if (qseecom.qsee_reentrancy_support) if (qseecom.qsee_reentrancy_support) mutex_unlock(&app_access_lock); mutex_unlock(&app_access_lock); while (atomic_read(&data->ioctl_count) > 1) { while (atomic_read(&data->ioctl_count) > 1) { if (wait_event_freezable(data->abort_wq, if (wait_event_interruptible(data->abort_wq, atomic_read(&data->ioctl_count) <= 1)) { atomic_read(&data->ioctl_count) <= 1)) { pr_err("Interrupted from abort\n"); pr_err("Interrupted from abort\n"); ret = -ERESTARTSYS; ret = -ERESTARTSYS; Loading Loading @@ -4140,7 +4142,7 @@ static int qseecom_receive_req(struct qseecom_dev_handle *data) mutex_unlock(&listener_access_lock); mutex_unlock(&listener_access_lock); while (1) { while (1) { if (wait_event_freezable(this_lstnr->rcv_req_wq, if (wait_event_interruptible(this_lstnr->rcv_req_wq, __qseecom_listener_has_rcvd_req(data, __qseecom_listener_has_rcvd_req(data, this_lstnr))) { this_lstnr))) { pr_debug("Interrupted: exiting Listener Service = %d\n", pr_debug("Interrupted: exiting Listener Service = %d\n", Loading