From 91713341013de0ae6f83b7296fa476fa9c8bf7bf Mon Sep 17 00:00:00 2001 From: Konsta Holtta Date: Fri, 9 Jan 2015 13:18:46 +0200 Subject: gpu: nvgpu: fix struct file memleak in alloc_as Free also newly allocated struct file in error conditions with fput, and pair it by not trying to release the resulting null as_share on release. Bug 1597056 Change-Id: Ifad5c3a829b2c459ed6a738ecdc1ac2ac7e1678a Signed-off-by: Konsta Holtta Reviewed-on: http://git-master/r/671527 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/as_gk20a.c | 3 +++ drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'drivers/gpu/nvgpu/gk20a') diff --git a/drivers/gpu/nvgpu/gk20a/as_gk20a.c b/drivers/gpu/nvgpu/gk20a/as_gk20a.c index cd5cdd48..fa131bb1 100644 --- a/drivers/gpu/nvgpu/gk20a/as_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/as_gk20a.c @@ -247,6 +247,9 @@ int gk20a_as_dev_release(struct inode *inode, struct file *filp) gk20a_dbg_fn(""); + if (!as_share) + return 0; + return gk20a_as_release_share(as_share); } diff --git a/drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c b/drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c index 4e85abc8..c8fe34a8 100644 --- a/drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c @@ -170,13 +170,15 @@ static int gk20a_ctrl_alloc_as( err = gk20a_as_alloc_share(&g->as, args->big_page_size, &as_share); if (err) - goto clean_up; + goto clean_up_file; file->private_data = as_share; args->as_fd = fd; return 0; +clean_up_file: + fput(file); clean_up: put_unused_fd(fd); return err; -- cgit v1.2.2