[2/2] misc: fastrpc: Fix device_open when no session is available

Message ID 20190215104007.27103-3-srinivas.kandagatla@linaro.org
State New
Headers show
Series
  • misc: fastrpc: minor fixes.
Related show

Commit Message

Srinivas Kandagatla Feb. 15, 2019, 10:40 a.m.
From: Thierry Escande <thierry.escande@linaro.org>


This change fixes fastrpc_device_open() when no session is available and
return an error in such case.

Signed-off-by: Thierry Escande <thierry.escande@linaro.org>

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

---
 drivers/misc/fastrpc.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

-- 
2.20.1

Patch

diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c
index 4b0db33896df..89aec17738ef 100644
--- a/drivers/misc/fastrpc.c
+++ b/drivers/misc/fastrpc.c
@@ -1016,10 +1016,19 @@  static int fastrpc_device_open(struct inode *inode, struct file *filp)
 	INIT_LIST_HEAD(&fl->user);
 	fl->tgid = current->tgid;
 	fl->cctx = cctx;
+
+	fl->sctx = fastrpc_session_alloc(cctx);
+	if (!fl->sctx) {
+		dev_err(&cctx->rpdev->dev, "No session available\n");
+		mutex_destroy(&fl->mutex);
+		kfree(fl);
+
+		return -EBUSY;
+	}
+
 	spin_lock(&cctx->lock);
 	list_add_tail(&fl->user, &cctx->users);
 	spin_unlock(&cctx->lock);
-	fl->sctx = fastrpc_session_alloc(cctx);
 
 	return 0;
 }