ipq40xx: essedma: Disable TCP segmentation offload for IPv6
authorSven Eckelmann <sven@narfation.org>
Tue, 9 Jun 2020 13:23:04 +0000 (15:23 +0200)
committerChristian Lamparter <chunkeey@gmail.com>
Sat, 13 Jun 2020 15:39:17 +0000 (17:39 +0200)
commitb515edb7750c67b05ebfaf0311780a894f9d0a3d
treeb7b25ba7f54cb8723e17e38b0560c631b21d095b
parentf7f15f80335cfa752149126177130ed0e8013ab9
ipq40xx: essedma: Disable TCP segmentation offload for IPv6

It was noticed that the the whole MAC can hang when transferring data from
one ar40xx port (WAN ports) to the CPU and from the CPU back to another
ar40xx port (LAN ports). The CPU was doing only NATing in that process.

Usually, the problem first starts with a simple data corruption:

  $ wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.4.0-amd64-netinst.iso -O /dev/null
  ...
  Connecting to saimei.ftp.acc.umu.se (saimei.ftp.acc.umu.se)|2001:6b0:19::138|:443... connected.
  ...
  Read  error at byte 48807936/352321536 (Decryption has failed.). Retrying.

But after a short while, the whole MAC will stop to react. No traffic can
be transported anymore from the CPU port from/to the AR40xx PHY/switch and
the MAC has to be resetted.

The whole problem can be avoided by disabling IPv6 TSO for this ethernet
MAC driver.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Acked-by: John Crispin <john@phrozen.org>
(backported from commit 678569505623e50bbbbc344c7e820fb315b79ede, with
updated commit message)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
target/linux/ipq40xx/patches-4.14/715-essedma-Disable-TCP-segmentation-offload-for-IPv6.patch [new file with mode: 0644]