diff options
author | KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> | 2008-05-12 17:02:06 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-13 11:02:23 -0400 |
commit | b5be11329f8cb2cc1a4c3b33b6b8d096c6012895 (patch) | |
tree | 30ccea8a490bbde0e0760274b6eb4c5863971caa | |
parent | 78f508ab07954d12896097ac07ab2fab443c7ca2 (diff) |
make vmstat cpu-unplug safe
When accessing cpu_online_map, we should prevent dynamic changing
of cpu_online_map by get_online_cpus().
Unfortunately, all_vm_events() doesn't do that.
Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Acked-by: Christoph Lameter <clameter@sgi.com>
Cc: Gautham R Shenoy <ego@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | mm/vmstat.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/mm/vmstat.c b/mm/vmstat.c index 1a32130b958c..db9eabb2c5b3 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c | |||
@@ -41,7 +41,9 @@ static void sum_vm_events(unsigned long *ret, cpumask_t *cpumask) | |||
41 | */ | 41 | */ |
42 | void all_vm_events(unsigned long *ret) | 42 | void all_vm_events(unsigned long *ret) |
43 | { | 43 | { |
44 | get_online_cpus(); | ||
44 | sum_vm_events(ret, &cpu_online_map); | 45 | sum_vm_events(ret, &cpu_online_map); |
46 | put_online_cpus(); | ||
45 | } | 47 | } |
46 | EXPORT_SYMBOL_GPL(all_vm_events); | 48 | EXPORT_SYMBOL_GPL(all_vm_events); |
47 | 49 | ||