diff options
Diffstat (limited to 'net/core/net-sysfs.c')
| -rw-r--r-- | net/core/net-sysfs.c | 28 | 
1 files changed, 7 insertions, 21 deletions
| diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index 999341244434..f2aa73bfb0e4 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c @@ -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, |