Takashi Iwai b7beae
From 90b940c249e4624b36534572482ec06d4e23c195 Mon Sep 17 00:00:00 2001
Takashi Iwai b7beae
From: Jan Hoffmann <jan@3e8.eu>
Takashi Iwai b7beae
Date: Wed, 1 Sep 2021 20:49:33 +0200
Takashi Iwai b7beae
Subject: [PATCH] net: dsa: lantiq_gswip: fix maximum frame length
Takashi Iwai b7beae
Git-commit: 552799f8b3b0074d2617f53a63a088f9514a66e3
Takashi Iwai b7beae
Patch-mainline: v5.15-rc1
Takashi Iwai b7beae
References: stable-5.14.6
Takashi Iwai b7beae
Takashi Iwai b7beae
commit 552799f8b3b0074d2617f53a63a088f9514a66e3 upstream.
Takashi Iwai b7beae
Takashi Iwai b7beae
Currently, outgoing packets larger than 1496 bytes are dropped when
Takashi Iwai b7beae
tagged VLAN is used on a switch port.
Takashi Iwai b7beae
Takashi Iwai b7beae
Add the frame check sequence length to the value of the register
Takashi Iwai b7beae
GSWIP_MAC_FLEN to fix this. This matches the lantiq_ppa vendor driver,
Takashi Iwai b7beae
which uses a value consisting of 1518 bytes for the MAC frame, plus the
Takashi Iwai b7beae
lengths of special tag and VLAN tags.
Takashi Iwai b7beae
Takashi Iwai b7beae
Fixes: 14fceff4771e ("net: dsa: Add Lantiq / Intel DSA driver for vrx200")
Takashi Iwai b7beae
Cc: stable@vger.kernel.org
Takashi Iwai b7beae
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Takashi Iwai b7beae
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Takashi Iwai b7beae
Signed-off-by: David S. Miller <davem@davemloft.net>
Takashi Iwai b7beae
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Takashi Iwai b7beae
Acked-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai b7beae
Takashi Iwai b7beae
---
Takashi Iwai b7beae
 drivers/net/dsa/lantiq_gswip.c | 3 ++-
Takashi Iwai b7beae
 1 file changed, 2 insertions(+), 1 deletion(-)
Takashi Iwai b7beae
Takashi Iwai b7beae
diff --git a/drivers/net/dsa/lantiq_gswip.c b/drivers/net/dsa/lantiq_gswip.c
Takashi Iwai b7beae
index e78026ef6d8c..64d6dfa83122 100644
Takashi Iwai b7beae
--- a/drivers/net/dsa/lantiq_gswip.c
Takashi Iwai b7beae
+++ b/drivers/net/dsa/lantiq_gswip.c
Takashi Iwai b7beae
@@ -843,7 +843,8 @@ static int gswip_setup(struct dsa_switch *ds)
Takashi Iwai b7beae
 
Takashi Iwai b7beae
 	gswip_switch_mask(priv, 0, GSWIP_MAC_CTRL_2_MLEN,
Takashi Iwai b7beae
 			  GSWIP_MAC_CTRL_2p(cpu_port));
Takashi Iwai b7beae
-	gswip_switch_w(priv, VLAN_ETH_FRAME_LEN + 8, GSWIP_MAC_FLEN);
Takashi Iwai b7beae
+	gswip_switch_w(priv, VLAN_ETH_FRAME_LEN + 8 + ETH_FCS_LEN,
Takashi Iwai b7beae
+		       GSWIP_MAC_FLEN);
Takashi Iwai b7beae
 	gswip_switch_mask(priv, 0, GSWIP_BM_QUEUE_GCTRL_GL_MOD,
Takashi Iwai b7beae
 			  GSWIP_BM_QUEUE_GCTRL);
Takashi Iwai b7beae
 
Takashi Iwai b7beae
-- 
Takashi Iwai b7beae
2.26.2
Takashi Iwai b7beae