From e8e63e2a6ef718ee8133d038ba2399155fb9d9d8 Mon Sep 17 00:00:00 2001 From: Monika Singh Date: Mon, 19 Jul 2021 18:07:52 +0530 Subject: [PATCH] smcinvoke: release lock before sleep Release g_smcinvoke_lock before sleep, to avoid LLKD crash for holding lock for longer period of time if TZ is busy. Change-Id: Ie9523bc81f3aa03497836f06180c9d3f8a8efc9f Signed-off-by: Monika Singh --- drivers/soc/qcom/smcinvoke.c | 2 ++ 1 file changed, 2 insertions(+) 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) &&