diff --git a/target/linux/generic/pending-6.6/742-net-ethernet-mtk_eth_soc-fix-tx-vlan-tag-for-llc-pac.patch b/target/linux/generic/pending-6.6/742-net-ethernet-mtk_eth_soc-fix-tx-vlan-tag-for-llc-pac.patch new file mode 100644 index 0000000000..4876d858fd --- /dev/null +++ b/target/linux/generic/pending-6.6/742-net-ethernet-mtk_eth_soc-fix-tx-vlan-tag-for-llc-pac.patch @@ -0,0 +1,39 @@ +From: Felix Fietkau +Date: Sun, 31 Aug 2025 20:05:13 +0200 +Subject: [PATCH] net: ethernet: mtk_eth_soc: fix tx vlan tag for llc packets + +When sending llc packets with vlan tx offload, the hardware fails to +actually add the tag. Deal with this by fixing it up in software. + +Fixes: 656e705243fd ("net-next: mediatek: add support for MT7623 ethernet") +Reported-by: Thibaut VARENE +Signed-off-by: Felix Fietkau +--- + +--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c ++++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c +@@ -1763,6 +1763,13 @@ static netdev_tx_t mtk_start_xmit(struct + bool gso = false; + int tx_num; + ++ if (skb_vlan_tag_present(skb) && ++ !eth_proto_is_802_3(eth_hdr(skb)->h_proto)) { ++ skb = __vlan_hwaccel_push_inside(skb); ++ if (!skb) ++ goto dropped; ++ } ++ + /* normally we can rely on the stack not calling this more than once, + * however we have 2 queues running on the same ring so we need to lock + * the ring access +@@ -1826,8 +1833,9 @@ static netdev_tx_t mtk_start_xmit(struct + + drop: + spin_unlock(ð->page_lock); +- stats->tx_dropped++; + dev_kfree_skb_any(skb); ++dropped: ++ stats->tx_dropped++; + return NETDEV_TX_OK; + } +