ipq40xx: essedma: Disable TCP segmentation offload for IPv6
authorSven Eckelmann <[email protected]>
Tue, 9 Jun 2020 13:35:04 +0000 (15:35 +0200)
committerChristian Lamparter <[email protected]>
Tue, 9 Jun 2020 21:23:07 +0000 (23:23 +0200)
commita8721d2fc31145204a5dbcf921ca38854cee2b5b
treec86c182722188b7b3d211141bc85cfbc298cb996
parent61307544d1f1ab81a2eb3a200164456c59308d81
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.

Signed-off-by: Sven Eckelmann <[email protected]>
Acked-by: John Crispin <[email protected]>
target/linux/ipq40xx/files-5.4/drivers/net/ethernet/qualcomm/essedma/edma_axi.c