ipq40xx: essedma: Disable TCP segmentation offload for IPv6
[openwrt/staging/chunkeey.git] / target / linux / ipq40xx / patches-4.14 / 713-essedma-Disable-TCP-segmentation-offload-for-IPv6.patch
1 From: Sven Eckelmann <sven@narfation.org>
2 Date: Tue, 9 Jun 2020 14:08:44 +0200
3 Subject: essedma: Disable TCP segmentation offload for IPv6
4
5 It was noticed that the the whole MAC can hang when transferring data from
6 one ar40xx port (WAN ports) to the CPU and from the CPU back to another
7 ar40xx port (LAN ports). The CPU was doing only NATing in that process.
8
9 Usually, the problem first starts with a simple data corruption:
10
11 $ wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.4.0-amd64-netinst.iso -O /dev/null
12 ...
13 Connecting to saimei.ftp.acc.umu.se (saimei.ftp.acc.umu.se)|2001:6b0:19::138|:443... connected.
14 ...
15 Read error at byte 48807936/352321536 (Decryption has failed.). Retrying.
16
17 But after a short while, the whole MAC will stop to react. No traffic can
18 be transported anymore from the CPU port from/to the AR40xx PHY/switch and
19 the MAC has to be resetted.
20
21 Signed-off-by: Sven Eckelmann <sven@narfation.org>
22
23 --- a/drivers/net/ethernet/qualcomm/essedma/edma_axi.c
24 +++ b/drivers/net/ethernet/qualcomm/essedma/edma_axi.c
25 @@ -972,17 +972,14 @@ static int edma_axi_probe(struct platfor
26 edma_netdev[i]->features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM
27 | NETIF_F_HW_VLAN_CTAG_TX
28 | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_SG |
29 - NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_GRO;
30 + NETIF_F_TSO | NETIF_F_GRO;
31 edma_netdev[i]->hw_features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM |
32 NETIF_F_HW_VLAN_CTAG_RX
33 - | NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6 |
34 - NETIF_F_GRO;
35 + | NETIF_F_SG | NETIF_F_TSO | NETIF_F_GRO;
36 edma_netdev[i]->vlan_features = NETIF_F_HW_CSUM | NETIF_F_SG |
37 - NETIF_F_TSO | NETIF_F_TSO6 |
38 - NETIF_F_GRO;
39 + NETIF_F_TSO | NETIF_F_GRO;
40 edma_netdev[i]->wanted_features = NETIF_F_HW_CSUM | NETIF_F_SG |
41 - NETIF_F_TSO | NETIF_F_TSO6 |
42 - NETIF_F_GRO;
43 + NETIF_F_TSO | NETIF_F_GRO;
44
45 #ifdef CONFIG_RFS_ACCEL
46 edma_netdev[i]->features |= NETIF_F_RXHASH | NETIF_F_NTUPLE;