diff options
author | Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org> | 2019-07-05 10:13:03 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-07-25 14:46:17 +0200 |
commit | 41db5f8397eee75afff82655a4884b5786a1d302 (patch) | |
tree | 6da9276e8453e3f2d516b288b2f03a42373e0825 /drivers/misc/fastrpc.c | |
parent | 0854d589aa91c68f676f55e087be549eacaaa408 (diff) | |
download | linux-stable-41db5f8397eee75afff82655a4884b5786a1d302.tar.gz linux-stable-41db5f8397eee75afff82655a4884b5786a1d302.tar.bz2 linux-stable-41db5f8397eee75afff82655a4884b5786a1d302.zip |
misc: fastrpc: fix memory leak when out of memory
Do the necessary house-keeping if the allocated memory wont be used
Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Link: https://lore.kernel.org/r/20190705081303.14170-1-jorge.ramirez-ortiz@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc/fastrpc.c')
-rw-r--r-- | drivers/misc/fastrpc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index 98603e235cf0..c790585da14c 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -279,8 +279,11 @@ static int fastrpc_buf_alloc(struct fastrpc_user *fl, struct device *dev, buf->virt = dma_alloc_coherent(dev, buf->size, (dma_addr_t *)&buf->phys, GFP_KERNEL); - if (!buf->virt) + if (!buf->virt) { + mutex_destroy(&buf->lock); + kfree(buf); return -ENOMEM; + } if (fl->sctx && fl->sctx->sid) buf->phys += ((u64)fl->sctx->sid << 32); |