summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2010-09-10 10:49:37 +0200
committerPekka Enberg <penberg@kernel.org>2010-10-02 09:28:42 +0200
commited6c1115c835d822ec5d6356ae3043de54088f43 (patch)
treeb25aa10f14fa60c7444d8ca5fe97c84f12801429 /mm
parentpercpu: use percpu allocator on UP too (diff)
downloadlinux-ed6c1115c835d822ec5d6356ae3043de54088f43.tar.xz
linux-ed6c1115c835d822ec5d6356ae3043de54088f43.zip
percpu: clear memory allocated with the km allocator
Percpu allocator should clear memory before returning it but the km allocator forgot to do it. Fix it. Signed-off-by: Tejun Heo <tj@kernel.org> Reported-by: Peter Zijlstra <peterz@infradead.org> Acked-by: Peter Zijlstra <peterz@infradead.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/percpu-km.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/mm/percpu-km.c b/mm/percpu-km.c
index 7037bc73bfa4..89633fefc6a2 100644
--- a/mm/percpu-km.c
+++ b/mm/percpu-km.c
@@ -35,7 +35,11 @@
static int pcpu_populate_chunk(struct pcpu_chunk *chunk, int off, int size)
{
- /* noop */
+ unsigned int cpu;
+
+ for_each_possible_cpu(cpu)
+ memset((void *)pcpu_chunk_addr(chunk, cpu, 0) + off, 0, size);
+
return 0;
}