Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a987a42f authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "qseecom: use wait_event_interruptible"

parents 4df27821 88435fb8
Loading
Loading
Loading
Loading
+13 −11
Original line number Original line Diff line number Diff line
@@ -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));
@@ -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;
@@ -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);
@@ -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;
@@ -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);
@@ -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;
@@ -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);
@@ -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;
@@ -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;
@@ -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",