From: sean.huang Date: Fri, 2 Jun 2017 01:46:14 +0000 (+0800) Subject: optee: fix mutex_unlock after mutex_lock X-Git-Tag: release-20171130_firefly~4^2~474 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f54c22b8599b46a5a9b7b0024eb29c209b8fd426;p=firefly-linux-kernel-4.4.55.git optee: fix mutex_unlock after mutex_lock Change-Id: Ic5a4b5b4691b11083e5fd9e327fc4be82d626bfb Signed-off-by: sean.huang --- diff --git a/security/optee_linuxdriver/armtz/tee_tz_drv.c b/security/optee_linuxdriver/armtz/tee_tz_drv.c index 4b5ec5a4eeed..58b33f42f11b 100644 --- a/security/optee_linuxdriver/armtz/tee_tz_drv.c +++ b/security/optee_linuxdriver/armtz/tee_tz_drv.c @@ -1100,8 +1100,10 @@ out: param.a1 = TEESMC_ST_L2CC_MUTEX_DISABLE; #ifdef SWITCH_CPU0_DEBUG ret = tee_smc_call_switchcpu0(¶m); - if (ret) - goto out; + if (ret) { + mutex_unlock(&ptee->mutex); + return ret; + } #else tee_smc_call(¶m); #endif @@ -1132,8 +1134,10 @@ static int configure_shm(struct tee_tz *ptee) param.a0 = TEESMC32_ST_FASTCALL_GET_SHM_CONFIG; #ifdef SWITCH_CPU0_DEBUG ret = tee_smc_call_switchcpu0(¶m); - if (ret) + if (ret) { + mutex_unlock(&ptee->mutex); goto out; + } #else tee_smc_call(¶m); #endif