summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2009-09-24 18:50:34 +0900
committerTejun Heo <tj@kernel.org>2009-09-29 09:17:57 +0900
commitfb59e72e7e10fd9d31f4e522f1b28254c2cc8a6c (patch)
tree56d4dccd4bafd1fbd61744cd09888f6d4c80abb5
parentffe0d5a575459ffe664b0762130b557f826fcace (diff)
downloadlinux-3.10-fb59e72e7e10fd9d31f4e522f1b28254c2cc8a6c.tar.gz
linux-3.10-fb59e72e7e10fd9d31f4e522f1b28254c2cc8a6c.tar.bz2
linux-3.10-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>
-rw-r--r--mm/percpu.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/mm/percpu.c b/mm/percpu.c
index e5c4cbda602..a64133f8af4 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