]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: airoha: Do not loopback traffic to GDM2 if it is available on the device
authorLorenzo Bianconi <lorenzo@kernel.org>
Thu, 13 Nov 2025 17:19:38 +0000 (18:19 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 1 Dec 2025 10:45:55 +0000 (11:45 +0100)
[ Upstream commit 8e0a754b0836d996802713bbebc87bc1cc17925c ]

Airoha_eth driver forwards offloaded uplink traffic (packets received
on GDM1 and forwarded to GDM{3,4}) to GDM2 in order to apply hw QoS.
This is correct if the device does not support a dedicated GDM2 port.
In this case, in order to enable hw offloading for uplink traffic,
the packets should be sent to GDM{3,4} directly.

Fixes: 9cd451d414f6 ("net: airoha: Add loopback support for GDM2")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://patch.msgid.link/20251113-airoha-hw-offload-gdm2-fix-v1-1-7e4ca300872f@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/airoha/airoha_ppe.c

index 62e46a8d7e3c8c0dbcec406ee168601bf435f6ee..20e77cdb86d0c737760c9dff8bf7010676185989 100644 (file)
@@ -281,7 +281,7 @@ static int airoha_ppe_foe_entry_prepare(struct airoha_eth *eth,
                        if (!airoha_is_valid_gdm_port(eth, port))
                                return -EINVAL;
 
-                       if (dsa_port >= 0)
+                       if (dsa_port >= 0 || eth->ports[1])
                                pse_port = port->id == 4 ? FE_PSE_PORT_GDM4
                                                         : port->id;
                        else