Prev: [078/205] amd64-agp: Probe unknown AGP devices the right way
Next: [071/205] IPv6: keep route for tentative address
From: Greg KH on 30 Jul 2010 14:30 2.6.34-stable review patch. If anyone has any objections, please let us know. ------------------ From: Catalin Marinas <catalin.marinas(a)arm.com> commit 9078370c0d2cfe4a905aa34f398bbb0d65921a2b upstream. With commits 08677214 and 59be5a8e, alloc_bootmem()/free_bootmem() and friends use the early_res functions for memory management when NO_BOOTMEM is enabled. This patch adds the kmemleak calls in the corresponding code paths for bootmem allocations. Signed-off-by: Catalin Marinas <catalin.marinas(a)arm.com> Acked-by: Pekka Enberg <penberg(a)cs.helsinki.fi> Acked-by: Yinghai Lu <yinghai(a)kernel.org> Cc: H. Peter Anvin <hpa(a)zytor.com> Signed-off-by: Greg Kroah-Hartman <gregkh(a)suse.de> --- kernel/early_res.c | 6 ++++++ mm/page_alloc.c | 5 +++++ 2 files changed, 11 insertions(+) --- a/kernel/early_res.c +++ b/kernel/early_res.c @@ -7,6 +7,8 @@ #include <linux/bootmem.h> #include <linux/mm.h> #include <linux/early_res.h> +#include <linux/slab.h> +#include <linux/kmemleak.h> /* * Early reserved memory areas. @@ -319,6 +321,8 @@ void __init free_early(u64 start, u64 en struct early_res *r; int i; + kmemleak_free_part(__va(start), end - start); + i = find_overlapped_early(start, end); r = &early_res[i]; if (i >= max_early_res || r->end != end || r->start != start) @@ -333,6 +337,8 @@ void __init free_early_partial(u64 start struct early_res *r; int i; + kmemleak_free_part(__va(start), end - start); + if (start == end) return; --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -3440,6 +3440,11 @@ void * __init __alloc_memory_core_early( ptr = phys_to_virt(addr); memset(ptr, 0, size); reserve_early_without_check(addr, addr + size, "BOOTMEM"); + /* + * The min_count is set to 0 so that bootmem allocated blocks + * are never reported as leaks. + */ + kmemleak_alloc(ptr, size, 0, 0); return ptr; } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |