Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

cpuset: use seq_*mask_* to print masks

1) seq_file excepts that m->count == m->size when it's buf is full,
so current code will causes bugs when buf is overflow.

2) There is not too good that cpuset accesses struct seq_file's
fields directly.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Acked-by: Paul Menage <menage@google.com>
Cc: Paul Jackson <pj@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Lai Jiangshan and committed by
Linus Torvalds
30e8e136 3eda2011

+4 -8
+4 -8
kernel/cpuset.c
··· 2436 2436 void cpuset_task_status_allowed(struct seq_file *m, struct task_struct *task) 2437 2437 { 2438 2438 seq_printf(m, "Cpus_allowed:\t"); 2439 - m->count += cpumask_scnprintf(m->buf + m->count, m->size - m->count, 2440 - task->cpus_allowed); 2439 + seq_cpumask(m, &task->cpus_allowed); 2441 2440 seq_printf(m, "\n"); 2442 2441 seq_printf(m, "Cpus_allowed_list:\t"); 2443 - m->count += cpulist_scnprintf(m->buf + m->count, m->size - m->count, 2444 - task->cpus_allowed); 2442 + seq_cpumask_list(m, &task->cpus_allowed); 2445 2443 seq_printf(m, "\n"); 2446 2444 seq_printf(m, "Mems_allowed:\t"); 2447 - m->count += nodemask_scnprintf(m->buf + m->count, m->size - m->count, 2448 - task->mems_allowed); 2445 + seq_nodemask(m, &task->mems_allowed); 2449 2446 seq_printf(m, "\n"); 2450 2447 seq_printf(m, "Mems_allowed_list:\t"); 2451 - m->count += nodelist_scnprintf(m->buf + m->count, m->size - m->count, 2452 - task->mems_allowed); 2448 + seq_nodemask_list(m, &task->mems_allowed); 2453 2449 seq_printf(m, "\n"); 2454 2450 }