Skip to content

Commit badce8f

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 f32a524 commit badce8f

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
@@ -3432,7 +3432,9 @@ static int mvneta_txq_sw_init(struct mvneta_port *pp,
34323432
return -ENOMEM;
34333433

34343434
/* Setup XPS mapping */
3435-
if (txq_number > 1)
3435+
if (pp->neta_armada3700)
3436+
cpu = 0;
3437+
else if (txq_number > 1)
34363438
cpu = txq->id % num_present_cpus();
34373439
else
34383440
cpu = pp->rxq_def % num_present_cpus();
@@ -4210,6 +4212,11 @@ static int mvneta_cpu_online(unsigned int cpu, struct hlist_node *node)
42104212
node_online);
42114213
struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu);
42124214

4215+
/* Armada 3700's per-cpu interrupt for mvneta is broken, all interrupts
4216+
* are routed to CPU 0, so we don't need all the cpu-hotplug support
4217+
*/
4218+
if (pp->neta_armada3700)
4219+
return 0;
42134220

42144221
spin_lock(&pp->lock);
42154222
/*

0 commit comments

Comments
 (0)