Commit 73f5e52b authored by Antoine Tenart's avatar Antoine Tenart Committed by David S. Miller
Browse files

net-sysfs: make xps_cpus_show and xps_rxqs_show consistent



Make the implementations of xps_cpus_show and xps_rxqs_show to converge,
as the two share the same logic but diverted over time. This should not
modify their behaviour but will help future changes and improve
maintenance.

Signed-off-by: default avatarAntoine Tenart <atenart@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d9a063d2
Loading
Loading
Loading
Loading
+18 −15
Original line number Diff line number Diff line
@@ -1364,7 +1364,7 @@ static const struct attribute_group dql_group = {
static ssize_t xps_cpus_show(struct netdev_queue *queue,
			     char *buf)
{
	int cpu, len, ret, num_tc = 1, tc = 0;
	int j, len, ret, num_tc = 1, tc = 0;
	struct net_device *dev = queue->dev;
	struct xps_dev_maps *dev_maps;
	unsigned long *mask;
@@ -1404,9 +1404,12 @@ static ssize_t xps_cpus_show(struct netdev_queue *queue,

	rcu_read_lock();
	dev_maps = rcu_dereference(dev->xps_cpus_map);
	if (dev_maps) {
		for_each_possible_cpu(cpu) {
			int i, tci = cpu * num_tc + tc;
	if (!dev_maps)
		goto out_no_maps;

	for (j = -1; j = netif_attrmask_next(j, NULL, nr_cpu_ids),
	     j < nr_cpu_ids;) {
		int i, tci = j * num_tc + tc;
		struct xps_map *map;

		map = rcu_dereference(dev_maps->attr_map[tci]);
@@ -1415,12 +1418,12 @@ static ssize_t xps_cpus_show(struct netdev_queue *queue,

		for (i = map->len; i--;) {
			if (map->queues[i] == index) {
					set_bit(cpu, mask);
				set_bit(j, mask);
				break;
			}
		}
	}
	}
out_no_maps:
	rcu_read_unlock();

	rtnl_unlock();