Loading drivers/misc/qseecom.c +5 −1 Original line number Diff line number Diff line Loading @@ -207,6 +207,7 @@ struct qseecom_registered_app_list { char app_name[MAX_APP_NAME_SIZE]; u32 app_arch; bool app_blocked; bool check_block; u32 blocked_on_listener_id; }; Loading Loading @@ -2305,6 +2306,7 @@ static void __qseecom_reentrancy_check_if_this_app_blocked( sigset_t new_sigset, old_sigset; if (qseecom.qsee_reentrancy_support) { ptr_app->check_block = true; while (ptr_app->app_blocked || qseecom.app_block_ref_cnt > 1) { /* thread sleep until this app unblocked */ sigfillset(&new_sigset); Loading @@ -2319,6 +2321,7 @@ static void __qseecom_reentrancy_check_if_this_app_blocked( mutex_lock(&app_access_lock); sigprocmask(SIG_SETMASK, &old_sigset, NULL); } ptr_app->check_block = false; } } Loading Loading @@ -2684,7 +2687,8 @@ static int qseecom_unload_app(struct qseecom_dev_handle *data, if (!strcmp((void *)ptr_app->app_name, (void *)data->client.app_name)) { found_app = true; if (ptr_app->app_blocked) if (ptr_app->app_blocked || ptr_app->check_block) app_crash = false; if (app_crash || ptr_app->ref_cnt == 1) unload = true; Loading Loading
drivers/misc/qseecom.c +5 −1 Original line number Diff line number Diff line Loading @@ -207,6 +207,7 @@ struct qseecom_registered_app_list { char app_name[MAX_APP_NAME_SIZE]; u32 app_arch; bool app_blocked; bool check_block; u32 blocked_on_listener_id; }; Loading Loading @@ -2305,6 +2306,7 @@ static void __qseecom_reentrancy_check_if_this_app_blocked( sigset_t new_sigset, old_sigset; if (qseecom.qsee_reentrancy_support) { ptr_app->check_block = true; while (ptr_app->app_blocked || qseecom.app_block_ref_cnt > 1) { /* thread sleep until this app unblocked */ sigfillset(&new_sigset); Loading @@ -2319,6 +2321,7 @@ static void __qseecom_reentrancy_check_if_this_app_blocked( mutex_lock(&app_access_lock); sigprocmask(SIG_SETMASK, &old_sigset, NULL); } ptr_app->check_block = false; } } Loading Loading @@ -2684,7 +2687,8 @@ static int qseecom_unload_app(struct qseecom_dev_handle *data, if (!strcmp((void *)ptr_app->app_name, (void *)data->client.app_name)) { found_app = true; if (ptr_app->app_blocked) if (ptr_app->app_blocked || ptr_app->check_block) app_crash = false; if (app_crash || ptr_app->ref_cnt == 1) unload = true; Loading