The padding intended to avoid corrupted non-zero padding payload was
accidentally adding too many padding bytes, tripping up some setups.
Fix this by using eth_skb_pad instead.
Fixes #11942.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit
9307c27539805de021fb7163f6ad6dc08992331b)
--- a/net/dsa/tag_mtk.c
+++ b/net/dsa/tag_mtk.c
-@@ -25,6 +25,14 @@ static struct sk_buff *mtk_tag_xmit(stru
+@@ -25,6 +25,13 @@ static struct sk_buff *mtk_tag_xmit(stru
u8 xmit_tpid;
u8 *mtk_tag;
+ * corrupted. With tags enabled, we need to make sure that packets are
+ * at least 68 bytes (including FCS and tag).
+ */
-+ if (__skb_put_padto(skb, ETH_ZLEN + MTK_HDR_LEN, false))
-+ return NULL;
++ eth_skb_pad(skb);
+
/* Build the special tag after the MAC Source Address. If VLAN header
* is present, it's required that VLAN header and special tag is