sched: fix the wrong mask_len
authorMiao Xie <miaox@cn.fujitsu.com>
Fri, 17 Oct 2008 10:17:46 +0000 (18:17 +0800)
committerIngo Molnar <mingo@elte.hu>
Fri, 17 Oct 2008 10:26:33 +0000 (12:26 +0200)
If NR_CPUS isn't a multiple of 32, we get a truncated string of sched
domains by catting /proc/schedstat. This is caused by the wrong mask_len.

This patch fixes it.

Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Cc: <stable@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched_stats.h

index 8385d43987e29b3b6a4775947d9a52fd22e8554c..81365b3d89f89823afe252b5d34918a8e1385ea8 100644 (file)
@@ -9,7 +9,7 @@
 static int show_schedstat(struct seq_file *seq, void *v)
 {
        int cpu;
-       int mask_len = NR_CPUS/32 * 9;
+       int mask_len = (NR_CPUS/32 + 1) * 9;
        char *mask_str = kmalloc(mask_len, GFP_KERNEL);
 
        if (mask_str == NULL)