Переглянути джерело

sched: fix the wrong mask_len

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>
Miao Xie 16 роки тому
батько
коміт
c851c8676b
1 змінених файлів з 1 додано та 1 видалено
  1. 1 1
      kernel/sched_stats.h

+ 1 - 1
kernel/sched_stats.h

@@ -9,7 +9,7 @@
 static int show_schedstat(struct seq_file *seq, void *v)
 static int show_schedstat(struct seq_file *seq, void *v)
 {
 {
 	int cpu;
 	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);
 	char *mask_str = kmalloc(mask_len, GFP_KERNEL);
 
 
 	if (mask_str == NULL)
 	if (mask_str == NULL)