Skip to content

Commit

Permalink
net: use %*pb[l] to print bitmaps including cpumasks and nodemasks
Browse files Browse the repository at this point in the history
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 <[email protected]>
Acked-by: David S. Miller <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
htejun authored and torvalds committed Feb 14, 2015
1 parent 1a40243 commit f090682
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 22 deletions.
28 changes: 7 additions & 21 deletions net/core/net-sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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,
Expand Down Expand Up @@ -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;
Expand All @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion net/core/sysctl_net_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ static int flow_limit_cpu_sysctl(struct ctl_table *table, int write,
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;
Expand Down

0 comments on commit f090682

Please sign in to comment.