From 77dc80699c3be6c25e3b8f9e164e9f3084d9b938 Mon Sep 17 00:00:00 2001 From: Vince Hsu Date: Fri, 13 Jul 2018 16:11:37 +0800 Subject: gpu: nvgpu: fix memleak when failed to power on gpu nvmemleak detected memleak in the error path of gk20a_ctrl_dev_open. nvkmemleak: Writing 'scan' to /sys/kernel/debug/kmemleak. unreferenced object 0xffffffc0a6fffa80 (size 128): comm "nvgpu_gpu_zcull", pid 9675, jiffies 4294948258 (age 195.764s) hex dump (first 32 bytes): 10 28 09 ba c0 ff ff ff 00 00 69 b2 c0 ff ff ff .(........i..... 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [] __kmalloc+0x26c/0x308 [] __nvgpu_kzalloc+0x30/0x88 [nvgpu] [] gk20a_ctrl_dev_open+0x60/0x108 [nvgpu] [] chrdev_open+0xb8/0x1d0 [] do_dentry_open+0x224/0x330 [] vfs_open+0x58/0x90 [] do_last+0x3e4/0xd98 [] path_openat+0xa4/0x2d8 [] do_filp_open+0x84/0x108 [] do_sys_open+0x164/0x278 [] SyS_openat+0x3c/0x50 [] el0_svc_naked+0x34/0x38 [] 0xffffffffffffffff Bug 200422739 Change-Id: I4ad03713ef5c8fc0e213bf4b649d38829a54a1ac Signed-off-by: Vince Hsu Reviewed-on: https://git-master.nvidia.com/r/1777656 Reviewed-by: Debarshi Dutta GVS: Gerrit_Virtual_Submit Reviewed-by: Sachin Nikam Tested-by: Sachin Nikam Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'drivers') diff --git a/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c b/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c index 17f1e923..f7de17ad 100644 --- a/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c +++ b/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c @@ -102,8 +102,11 @@ int gk20a_ctrl_dev_open(struct inode *inode, struct file *filp) err = nvgpu_clk_arb_init_session(g, &priv->clk_session); free_ref: - if (err) + if (err) { gk20a_put(g); + if (priv) + nvgpu_kfree(g, priv); + } return err; } int gk20a_ctrl_dev_release(struct inode *inode, struct file *filp) -- cgit v1.2.2