From cec3b99562c8e2a4b2389ede4db09c8e9cf239d0 Mon Sep 17 00:00:00 2001 From: Elon Zhang Date: Tue, 14 May 2019 17:49:52 +0800 Subject: [PATCH] OP-TEE: fix missing mutex unlock Change-Id: I4b4ba136b94da4dbe8d1fa561dbd03f7addfb350 Signed-off-by: Elon Zhang --- security/optee_linuxdriver/armtz/tee_mem.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/security/optee_linuxdriver/armtz/tee_mem.c b/security/optee_linuxdriver/armtz/tee_mem.c index 9b9ca667b212..2c584826c601 100644 --- a/security/optee_linuxdriver/armtz/tee_mem.c +++ b/security/optee_linuxdriver/armtz/tee_mem.c @@ -180,6 +180,7 @@ struct shm_pool *tee_shm_pool_create(struct device *dev, size_t shm_size, chunk = _KMALLOC(sizeof(struct mem_chunk), GFP_KERNEL); if (!chunk) { dev_err(dev, "kmalloc failed\n"); + mutex_unlock(&pool->lock); goto alloc_failed; } memset(chunk, 0, sizeof(*chunk)); @@ -558,6 +559,7 @@ int rk_tee_shm_pool_free(struct device *dev, struct shm_pool *pool, dev_warn(dev, "< tee_shm_pool_free() WARNING, paddr=0x%p already released\n", (void *)paddr); + mutex_unlock(&pool->lock); return -EINVAL; } else if (--chunk->counter == 0) { dev_dbg(dev, "paddr=%p\n", (void *)paddr);