Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756088AbZGGHM5 (ORCPT ); Tue, 7 Jul 2009 03:12:57 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754599AbZGGHMu (ORCPT ); Tue, 7 Jul 2009 03:12:50 -0400 Received: from courier.cs.helsinki.fi ([128.214.9.1]:43391 "EHLO mail.cs.helsinki.fi" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754474AbZGGHMt (ORCPT ); Tue, 7 Jul 2009 03:12:49 -0400 Subject: Re: [RFC PATCH 3/3] kmemleak: Remove alloc_bootmem annotations introduced in the past From: Pekka Enberg To: Catalin Marinas Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Ingo Molnar In-Reply-To: <20090706105200.16051.4972.stgit@pc1117.cambridge.arm.com> References: <20090706104654.16051.44029.stgit@pc1117.cambridge.arm.com> <20090706105200.16051.4972.stgit@pc1117.cambridge.arm.com> Date: Tue, 07 Jul 2009 10:12:52 +0300 Message-Id: <1246950772.24285.11.camel@penberg-laptop> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit X-Mailer: Evolution 2.24.3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2848 Lines: 81 On Mon, 2009-07-06 at 11:52 +0100, Catalin Marinas wrote: > kmemleak_alloc() calls were added in some places where alloc_bootmem was > called. Since now kmemleak tracks bootmem allocations, these explicit > calls should be run. > > Signed-off-by: Catalin Marinas > Cc: Ingo Molnar > Cc: Pekka Enberg Acked-by: Pekka Enberg > --- > kernel/pid.c | 7 ------- > mm/page_alloc.c | 14 +++----------- > 2 files changed, 3 insertions(+), 18 deletions(-) > > diff --git a/kernel/pid.c b/kernel/pid.c > index 5fa1db4..31310b5 100644 > --- a/kernel/pid.c > +++ b/kernel/pid.c > @@ -36,7 +36,6 @@ > #include > #include > #include > -#include > > #define pid_hashfn(nr, ns) \ > hash_long((unsigned long)nr + (unsigned long)ns, pidhash_shift) > @@ -513,12 +512,6 @@ void __init pidhash_init(void) > pid_hash = alloc_bootmem(pidhash_size * sizeof(*(pid_hash))); > if (!pid_hash) > panic("Could not alloc pidhash!\n"); > - /* > - * pid_hash contains references to allocated struct pid objects and it > - * must be scanned by kmemleak to avoid false positives. > - */ > - kmemleak_alloc(pid_hash, pidhash_size * sizeof(*(pid_hash)), 0, > - GFP_KERNEL); > for (i = 0; i < pidhash_size; i++) > INIT_HLIST_HEAD(&pid_hash[i]); > } > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index e0f2cdf..202ef6b 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -4745,8 +4745,10 @@ void *__init alloc_large_system_hash(const char *tablename, > * some pages at the end of hash table which > * alloc_pages_exact() automatically does > */ > - if (get_order(size) < MAX_ORDER) > + if (get_order(size) < MAX_ORDER) { > table = alloc_pages_exact(size, GFP_ATOMIC); > + kmemleak_alloc(table, size, 1, GFP_ATOMIC); > + } > } > } while (!table && size > PAGE_SIZE && --log2qty); > > @@ -4764,16 +4766,6 @@ void *__init alloc_large_system_hash(const char *tablename, > if (_hash_mask) > *_hash_mask = (1 << log2qty) - 1; > > - /* > - * If hashdist is set, the table allocation is done with __vmalloc() > - * which invokes the kmemleak_alloc() callback. This function may also > - * be called before the slab and kmemleak are initialised when > - * kmemleak simply buffers the request to be executed later > - * (GFP_ATOMIC flag ignored in this case). > - */ > - if (!hashdist) > - kmemleak_alloc(table, size, 1, GFP_ATOMIC); > - > return table; > } > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/