]> git.hungrycats.org Git - linux/commit
mm: kmemleak: avoid false negatives on vmalloc'ed objects
authorCatalin Marinas <catalin.marinas@arm.com>
Tue, 12 Nov 2013 23:07:45 +0000 (15:07 -0800)
committerJiri Slaby <jslaby@suse.cz>
Mon, 28 Jul 2014 07:12:23 +0000 (09:12 +0200)
commitabd263fba82d3cd051c2d825b9ee816512a8e16c
tree1e079fab5be0d288b71f4f69d8cb1e089129d920
parenta428dc008e435c5a36b1288fb5b8c4b58472e28c
mm: kmemleak: avoid false negatives on vmalloc'ed objects

commit 7f88f88f83ed609650a01b18572e605ea50cd163 upstream.

Commit 248ac0e1943a ("mm/vmalloc: remove guard page from between vmap
blocks") had the side effect of making vmap_area.va_end member point to
the next vmap_area.va_start.  This was creating an artificial reference
to vmalloc'ed objects and kmemleak was rarely reporting vmalloc() leaks.

This patch marks the vmap_area containing pointers explicitly and
reduces the min ref_count to 2 as vm_struct still contains a reference
to the vmalloc'ed object.  The kmemleak add_scan_area() function has
been improved to allow a SIZE_MAX argument covering the rest of the
object (for simpler calling sites).

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
mm/kmemleak.c
mm/vmalloc.c