diff options
author | Pekka Enberg <penberg@cs.helsinki.fi> | 2008-04-14 18:50:44 +0300 |
---|---|---|
committer | Pekka Enberg <penberg@cs.helsinki.fi> | 2008-04-14 18:50:44 +0300 |
commit | 62f75532b583c03840f31e40386ce2df73be9ca0 (patch) | |
tree | 22f532faf421878b593b467a9d8bf29d6769c30f /mm | |
parent | 120dd64cacd4fb796bca0acba3665553f1d9ecaa (diff) | |
download | linux-62f75532b583c03840f31e40386ce2df73be9ca0.tar.gz linux-62f75532b583c03840f31e40386ce2df73be9ca0.tar.bz2 linux-62f75532b583c03840f31e40386ce2df73be9ca0.zip |
slub: Initialize per-cpu stats
As spotted by kmemcheck, we need to initialize the per-CPU ->stat array before
using it.
[kmem_cache_cpu structures are usually allocated from arrays defined via
DEFINE_PER_CPU that are zeroed so we have not noticed this so far --cl].
Reported-by: Vegard Nossum <vegard.nossum@gmail.com>
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/slub.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/mm/slub.c b/mm/slub.c index acc975fcc8cc..15a7a0d45d71 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1886,6 +1886,9 @@ static void init_kmem_cache_cpu(struct kmem_cache *s, c->node = 0; c->offset = s->offset / sizeof(void *); c->objsize = s->objsize; +#ifdef CONFIG_SLUB_STATS + memset(c->stat, 0, NR_SLUB_STAT_ITEMS * sizeof(unsigned)); +#endif } static void init_kmem_cache_node(struct kmem_cache_node *n) |