]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
video: tegra: host: gk20a: Drop ref on map error
authorArto Merilainen <amerilainen@nvidia.com>
Mon, 30 Dec 2013 13:54:01 +0000 (15:54 +0200)
committerTerje Bergstrom <tbergstrom@nvidia.com>
Tue, 31 Dec 2013 09:18:13 +0000 (01:18 -0800)
gk20a memory management code did not correctly drop reference to
nvmap handle or nvmap client if we were unable to actually map
the memory to gk20a memory space. This leaded to memory leaks in
some use cases.

Bug 1408131

Change-Id: If99de665ffeb984df2a41aa4edbaddf30e84af9f
Signed-off-by: Arto Merilainen <amerilainen@nvidia.com>
Reviewed-on: http://git-master/r/350630
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
drivers/video/tegra/host/gk20a/mm_gk20a.c

index 3b9b735006a20a1213087ee5148d6cd68c3f8faa..b2926d429aad2669b5f53197430be34edf243097 100644 (file)
@@ -2097,8 +2097,11 @@ static int gk20a_as_map_buffer(struct nvhost_as_share *as_share,
                        flags, 0/*no kind here, to be removed*/, NULL, true,
                        mem_flag_none);
        *offset_align = ret_va;
-       if (!ret_va)
+       if (!ret_va) {
+               nvhost_memmgr_put(memmgr, r);
+               nvhost_memmgr_put_mgr(memmgr);
                err = -EINVAL;
+       }
 
        return err;
 }