Commit f28c020f authored by Sabrina Dubroca's avatar Sabrina Dubroca Committed by David S. Miller
Browse files

net: restore call to netdev_queue_numa_node_write when resetting XPS



Before commit 80d19669 ("net: Refactor XPS for CPUs and Rx queues"),
netif_reset_xps_queues() did netdev_queue_numa_node_write() for all the
queues being reset. Now, this is only done when the "active" variable in
clean_xps_maps() is false, ie when on all the CPUs, there's no active
XPS mapping left.

Fixes: 80d19669 ("net: Refactor XPS for CPUs and Rx queues")
Signed-off-by: default avatarSabrina Dubroca <sd@queasysnail.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d7f7e001
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -2187,17 +2187,19 @@ static void clean_xps_maps(struct net_device *dev, const unsigned long *mask,
		active |= remove_xps_queue_cpu(dev, dev_maps, j, offset,
					       count);
	if (!active) {
		if (is_rxqs_map) {
		if (is_rxqs_map)
			RCU_INIT_POINTER(dev->xps_rxqs_map, NULL);
		} else {
		else
			RCU_INIT_POINTER(dev->xps_cpus_map, NULL);
		kfree_rcu(dev_maps, rcu);
	}

			for (i = offset + (count - 1); count--; i--)
	if (!is_rxqs_map) {
		for (i = offset + (count - 1); count--; i--) {
			netdev_queue_numa_node_write(
				netdev_get_tx_queue(dev, i),
				NUMA_NO_NODE);
		}
		kfree_rcu(dev_maps, rcu);
	}
}