diff --git a/drivers/soc/qcom/smcinvoke.c b/drivers/soc/qcom/smcinvoke.c index da8a33932180..6397e5a963a1 100644 --- a/drivers/soc/qcom/smcinvoke.c +++ b/drivers/soc/qcom/smcinvoke.c @@ -1322,7 +1322,9 @@ static int prepare_send_scm_msg(const uint8_t *in_buf, phys_addr_t in_paddr, if (ret == -EBUSY) { pr_err("Secure side is busy,will retry after 30 ms\n"); + mutex_unlock(&g_smcinvoke_lock); msleep(SMCINVOKE_SCM_EBUSY_WAIT_MS); + mutex_lock(&g_smcinvoke_lock); } } while ((ret == -EBUSY) &&