ipq40xx: essedma: Disable TCP segmentation offload for IPv6
[oweals/openwrt.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;