summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2009-09-24 11:50:34 +0200
committerTejun Heo <tj@kernel.org>2009-09-29 02:17:57 +0200
commitfb59e72e7e10fd9d31f4e522f1b28254c2cc8a6c (patch)
tree56d4dccd4bafd1fbd61744cd09888f6d4c80abb5 /mm
parentpercpu: fix unit_map[] verification in pcpu_setup_first_chunk() (diff)
downloadlinux-fb59e72e7e10fd9d31f4e522f1b28254c2cc8a6c.tar.xz
linux-fb59e72e7e10fd9d31f4e522f1b28254c2cc8a6c.zip
percpu: make pcpu_build_alloc_info() clear static buffers
pcpu_build_alloc_info() may be called multiple times when percpu is falling back to different first chunk allocator. Make it clear static buffers so that they don't contain values from previous runs. Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/percpu.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/mm/percpu.c b/mm/percpu.c
index e5c4cbda6026..a64133f8af45 100644
--- a/mm/percpu.c
+++ b/mm/percpu.c
@@ -1347,6 +1347,10 @@ struct pcpu_alloc_info * __init pcpu_build_alloc_info(
struct pcpu_alloc_info *ai;
unsigned int *cpu_map;
+ /* this function may be called multiple times */
+ memset(group_map, 0, sizeof(group_map));
+ memset(group_cnt, 0, sizeof(group_map));
+
/*
* Determine min_unit_size, alloc_size and max_upa such that
* alloc_size is multiple of atom_size and is the smallest