Skip to content

Commit 79234cb

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 <[email protected]> Signed-off-by: David S. Miller <[email protected]> Signed-off-by: Sasha Levin <[email protected]>
1 parent 8845446 commit 79234cb

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

drivers/net/ethernet/marvell/mvneta.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3409,7 +3409,9 @@ static int mvneta_txq_sw_init(struct mvneta_port *pp,
34093409
return -ENOMEM;
34103410

34113411
/* Setup XPS mapping */
3412-
if (txq_number > 1)
3412+
if (pp->neta_armada3700)
3413+
cpu = 0;
3414+
else if (txq_number > 1)
34133415
cpu = txq->id % num_present_cpus();
34143416
else
34153417
cpu = pp->rxq_def % num_present_cpus();
@@ -4187,6 +4189,11 @@ static int mvneta_cpu_online(unsigned int cpu, struct hlist_node *node)
41874189
node_online);
41884190
struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu);
41894191

4192+
/* Armada 3700's per-cpu interrupt for mvneta is broken, all interrupts
4193+
* are routed to CPU 0, so we don't need all the cpu-hotplug support
4194+
*/
4195+
if (pp->neta_armada3700)
4196+
return 0;
41904197

41914198
spin_lock(&pp->lock);
41924199
/*

0 commit comments

Comments
 (0)