29 lines
1.0 KiB
Diff
29 lines
1.0 KiB
Diff
From: Felix Fietkau <nbd@nbd.name>
|
|
Date: Fri, 6 May 2022 21:38:42 +0200
|
|
Subject: [PATCH] net: dsa: tag_mtk: add padding for tx packets
|
|
|
|
Padding for transmitted packets needs to account for the special tag.
|
|
With not enough padding, garbage bytes are inserted by the switch at the
|
|
end of small packets.
|
|
|
|
Fixes: 5cd8985a1909 ("net-next: dsa: add Mediatek tag RX/TX handler")
|
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
---
|
|
|
|
--- a/net/dsa/tag_mtk.c
|
|
+++ b/net/dsa/tag_mtk.c
|
|
@@ -27,6 +27,13 @@ static struct sk_buff *mtk_tag_xmit(stru
|
|
|
|
skb_set_queue_mapping(skb, dp->index);
|
|
|
|
+ /* The Ethernet switch we are interfaced with needs packets to be at
|
|
+ * least 64 bytes (including FCS) otherwise their padding might be
|
|
+ * corrupted. With tags enabled, we need to make sure that packets are
|
|
+ * at least 68 bytes (including FCS and tag).
|
|
+ */
|
|
+ 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
|
|
* being combined. Only in this way we can allow the switch can parse
|