Merge "qseecom: improve operation when app unload returns EBUSY"

This commit is contained in:
qctecmdr 2019-12-24 07:08:47 -08:00 committed by Gerrit - the friendly Code Review server
commit 7b0a6c2965

View file

@ -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;