Merge "qseecom: improve operation when app unload returns EBUSY"
This commit is contained in:
commit
7b0a6c2965
1 changed files with 10 additions and 1 deletions
|
@ -3099,6 +3099,16 @@ static int qseecom_unload_app(struct qseecom_dev_handle *data,
|
|||
|
||||
if (!ptr_app->ref_cnt) {
|
||||
ret = __qseecom_unload_app(data, data->client.app_id);
|
||||
if (ret == -EBUSY) {
|
||||
/*
|
||||
* If unload failed due to EBUSY, don't free mem
|
||||
* just restore app ref_cnt and return -EBUSY
|
||||
*/
|
||||
pr_warn("unload ta %d(%s) EBUSY\n",
|
||||
data->client.app_id, data->client.app_name);
|
||||
ptr_app->ref_cnt++;
|
||||
return ret;
|
||||
}
|
||||
spin_lock_irqsave(&qseecom.registered_app_list_lock, flags);
|
||||
list_del(&ptr_app->list);
|
||||
spin_unlock_irqrestore(&qseecom.registered_app_list_lock,
|
||||
|
@ -3114,7 +3124,6 @@ unload_exit:
|
|||
return ret;
|
||||
}
|
||||
|
||||
|
||||
static int qseecom_prepare_unload_app(struct qseecom_dev_handle *data)
|
||||
{
|
||||
struct qseecom_unload_app_pending_list *entry = NULL;
|
||||
|
|
Loading…
Reference in a new issue