From 7c11df42d0c7bf5b3dd743a21b4872e7b26ca2a2 Mon Sep 17 00:00:00 2001 From: Thierry Escande Date: Fri, 15 Feb 2019 10:40:07 +0000 Subject: [PATCH] misc: fastrpc: Fix device_open when no session is available This change fixes fastrpc_device_open() when no session is available and return an error in such case. Signed-off-by: Thierry Escande Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman --- drivers/misc/fastrpc.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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; }