diff options
Diffstat (limited to 'drivers/tee/optee/core.c')
| -rw-r--r-- | drivers/tee/optee/core.c | 19 | 
1 files changed, 10 insertions, 9 deletions
| diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c index 58169e519422..7952357df9c8 100644 --- a/drivers/tee/optee/core.c +++ b/drivers/tee/optee/core.c @@ -224,13 +224,14 @@ static void optee_release(struct tee_context *ctx)  	if (!IS_ERR(shm)) {  		arg = tee_shm_get_va(shm, 0);  		/* -		 * If va2pa fails for some reason, we can't call -		 * optee_close_session(), only free the memory. Secure OS -		 * will leak sessions and finally refuse more sessions, but -		 * we will at least let normal world reclaim its memory. +		 * If va2pa fails for some reason, we can't call into +		 * secure world, only free the memory. Secure OS will leak +		 * sessions and finally refuse more sessions, but we will +		 * at least let normal world reclaim its memory.  		 */  		if (!IS_ERR(arg)) -			tee_shm_va2pa(shm, arg, &parg); +			if (tee_shm_va2pa(shm, arg, &parg)) +				arg = NULL; /* prevent usage of parg below */  	}  	list_for_each_entry_safe(sess, sess_tmp, &ctxdata->sess_list, @@ -258,7 +259,7 @@ static void optee_release(struct tee_context *ctx)  	}  } -static struct tee_driver_ops optee_ops = { +static const struct tee_driver_ops optee_ops = {  	.get_version = optee_get_version,  	.open = optee_open,  	.release = optee_release, @@ -268,13 +269,13 @@ static struct tee_driver_ops optee_ops = {  	.cancel_req = optee_cancel_req,  }; -static struct tee_desc optee_desc = { +static const struct tee_desc optee_desc = {  	.name = DRIVER_NAME "-clnt",  	.ops = &optee_ops,  	.owner = THIS_MODULE,  }; -static struct tee_driver_ops optee_supp_ops = { +static const struct tee_driver_ops optee_supp_ops = {  	.get_version = optee_get_version,  	.open = optee_open,  	.release = optee_release, @@ -282,7 +283,7 @@ static struct tee_driver_ops optee_supp_ops = {  	.supp_send = optee_supp_send,  }; -static struct tee_desc optee_supp_desc = { +static const struct tee_desc optee_supp_desc = {  	.name = DRIVER_NAME "-supp",  	.ops = &optee_supp_ops,  	.owner = THIS_MODULE, |