Skip to content

Commit f646dd9

Browse files
minimaxwellgregkh
authored andcommitted
net: mvneta: Remove per-cpu queue mapping for Armada 3700
[ Upstream commit cf9bf87 ] According to Errata #23 "The per-CPU GbE interrupt is limited to Core 0", we can't use the per-cpu interrupt mechanism on the Armada 3700 familly. This is correctly checked for RSS configuration, but the initial queue mapping is still done by having the queues spread across all the CPUs in the system, both in the init path and in the cpu_hotplug path. Fixes: 2636ac3 ("net: mvneta: Add network support for Armada 3700 SoC") Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent dcb1806 commit f646dd9

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

drivers/net/ethernet/marvell/mvneta.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3022,7 +3022,9 @@ static int mvneta_txq_sw_init(struct mvneta_port *pp,
30223022
}
30233023

30243024
/* Setup XPS mapping */
3025-
if (txq_number > 1)
3025+
if (pp->neta_armada3700)
3026+
cpu = 0;
3027+
else if (txq_number > 1)
30263028
cpu = txq->id % num_present_cpus();
30273029
else
30283030
cpu = pp->rxq_def % num_present_cpus();
@@ -3667,6 +3669,11 @@ static int mvneta_cpu_online(unsigned int cpu, struct hlist_node *node)
36673669
node_online);
36683670
struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu);
36693671

3672+
/* Armada 3700's per-cpu interrupt for mvneta is broken, all interrupts
3673+
* are routed to CPU 0, so we don't need all the cpu-hotplug support
3674+
*/
3675+
if (pp->neta_armada3700)
3676+
return 0;
36703677

36713678
spin_lock(&pp->lock);
36723679
/*

0 commit comments

Comments
 (0)