]> git.karo-electronics.de Git - karo-tx-linux.git/commit
mm: kmemleak: avoid false negatives on vmalloc'ed objects
authorCatalin Marinas <catalin.marinas@arm.com>
Tue, 5 Nov 2013 05:55:40 +0000 (16:55 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Tue, 5 Nov 2013 05:55:40 +0000 (16:55 +1100)
commit55b14efe90716b5e5c97a535f0d08e373aa7c544
tree8ff2c88c6c2552fa0d806b85d8c7cf3c1c00bdee
parent13d2f7910ca46234c7973065ad9a12cbcf027120
mm: kmemleak: avoid false negatives on vmalloc'ed objects

Commit 248ac0e1 ("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>
mm/kmemleak.c
mm/vmalloc.c