net: use %*pb[l] to print bitmaps including cpumasks and nodemasks
printk and friends can now format bitmaps using '%*pb[l]'. cpumask and nodemask also provide cpumask_pr_args() and nodemask_pr_args() respectively which can be used to generate the two printf arguments necessary to format the specified cpu/nodemask. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
1a40243bae
Коммит
f09068276c
|
@ -614,8 +614,7 @@ static ssize_t show_rps_map(struct netdev_rx_queue *queue,
|
|||
{
|
||||
struct rps_map *map;
|
||||
cpumask_var_t mask;
|
||||
size_t len = 0;
|
||||
int i;
|
||||
int i, len;
|
||||
|
||||
if (!zalloc_cpumask_var(&mask, GFP_KERNEL))
|
||||
return -ENOMEM;
|
||||
|
@ -626,17 +625,11 @@ static ssize_t show_rps_map(struct netdev_rx_queue *queue,
|
|||
for (i = 0; i < map->len; i++)
|
||||
cpumask_set_cpu(map->cpus[i], mask);
|
||||
|
||||
len += cpumask_scnprintf(buf + len, PAGE_SIZE, mask);
|
||||
if (PAGE_SIZE - len < 3) {
|
||||
rcu_read_unlock();
|
||||
free_cpumask_var(mask);
|
||||
return -EINVAL;
|
||||
}
|
||||
len = snprintf(buf, PAGE_SIZE, "%*pb\n", cpumask_pr_args(mask));
|
||||
rcu_read_unlock();
|
||||
|
||||
free_cpumask_var(mask);
|
||||
len += sprintf(buf + len, "\n");
|
||||
return len;
|
||||
|
||||
return len < PAGE_SIZE ? len : -EINVAL;
|
||||
}
|
||||
|
||||
static ssize_t store_rps_map(struct netdev_rx_queue *queue,
|
||||
|
@ -1090,8 +1083,7 @@ static ssize_t show_xps_map(struct netdev_queue *queue,
|
|||
struct xps_dev_maps *dev_maps;
|
||||
cpumask_var_t mask;
|
||||
unsigned long index;
|
||||
size_t len = 0;
|
||||
int i;
|
||||
int i, len;
|
||||
|
||||
if (!zalloc_cpumask_var(&mask, GFP_KERNEL))
|
||||
return -ENOMEM;
|
||||
|
@ -1117,15 +1109,9 @@ static ssize_t show_xps_map(struct netdev_queue *queue,
|
|||
}
|
||||
rcu_read_unlock();
|
||||
|
||||
len += cpumask_scnprintf(buf + len, PAGE_SIZE, mask);
|
||||
if (PAGE_SIZE - len < 3) {
|
||||
free_cpumask_var(mask);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
len = snprintf(buf, PAGE_SIZE, "%*pb\n", cpumask_pr_args(mask));
|
||||
free_cpumask_var(mask);
|
||||
len += sprintf(buf + len, "\n");
|
||||
return len;
|
||||
return len < PAGE_SIZE ? len : -EINVAL;
|
||||
}
|
||||
|
||||
static ssize_t store_xps_map(struct netdev_queue *queue,
|
||||
|
|
|
@ -155,7 +155,7 @@ write_unlock:
|
|||
rcu_read_unlock();
|
||||
|
||||
len = min(sizeof(kbuf) - 1, *lenp);
|
||||
len = cpumask_scnprintf(kbuf, len, mask);
|
||||
len = scnprintf(kbuf, len, "%*pb", cpumask_pr_args(mask));
|
||||
if (!len) {
|
||||
*lenp = 0;
|
||||
goto done;
|
||||
|
|
Загрузка…
Ссылка в новой задаче