]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - queue-4.4/net-systemport-fix-reception-of-bpdus.patch
Linux 3.18.137
[thirdparty/kernel/stable-queue.git] / queue-4.4 / net-systemport-fix-reception-of-bpdus.patch
1 From 663878cede037eaf6705741e81e671c833dbbf12 Mon Sep 17 00:00:00 2001
2 From: Florian Fainelli <f.fainelli@gmail.com>
3 Date: Fri, 15 Feb 2019 12:16:51 -0800
4 Subject: net: systemport: Fix reception of BPDUs
5
6 [ Upstream commit a40061ea2e39494104602b3048751341bda374a1 ]
7
8 SYSTEMPORT has its RXCHK parser block that attempts to validate the
9 packet structures, unfortunately setting the L2 header check bit will
10 cause Bridge PDUs (BPDUs) to be incorrectly rejected because they look
11 like LLC/SNAP packets with a non-IPv4 or non-IPv6 Ethernet Type.
12
13 Fixes: 4e8aedfe78c7 ("net: systemport: Turn on offloads by default")
14 Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
15 Signed-off-by: David S. Miller <davem@davemloft.net>
16 Signed-off-by: Sasha Levin <sashal@kernel.org>
17 ---
18 drivers/net/ethernet/broadcom/bcmsysport.c | 4 ++++
19 1 file changed, 4 insertions(+)
20
21 diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ethernet/broadcom/bcmsysport.c
22 index 143b9a384af8..53b3c1a5851c 100644
23 --- a/drivers/net/ethernet/broadcom/bcmsysport.c
24 +++ b/drivers/net/ethernet/broadcom/bcmsysport.c
25 @@ -126,6 +126,10 @@ static int bcm_sysport_set_rx_csum(struct net_device *dev,
26
27 priv->rx_chk_en = !!(wanted & NETIF_F_RXCSUM);
28 reg = rxchk_readl(priv, RXCHK_CONTROL);
29 + /* Clear L2 header checks, which would prevent BPDUs
30 + * from being received.
31 + */
32 + reg &= ~RXCHK_L2_HDR_DIS;
33 if (priv->rx_chk_en)
34 reg |= RXCHK_EN;
35 else
36 --
37 2.19.1
38