kirkwood: disable TSO on the ethernet device by default, fixes data corruption issues...
authorFelix Fietkau <nbd@openwrt.org>
Wed, 27 May 2015 14:56:13 +0000 (14:56 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Wed, 27 May 2015 14:56:13 +0000 (14:56 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 45776

target/linux/kirkwood/patches-3.18/200-disable-tso.patch [new file with mode: 0644]

diff --git a/target/linux/kirkwood/patches-3.18/200-disable-tso.patch b/target/linux/kirkwood/patches-3.18/200-disable-tso.patch
new file mode 100644 (file)
index 0000000..4e8126e
--- /dev/null
@@ -0,0 +1,35 @@
+From: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
+Subject: [PATCH] net: mv643xx_eth: Make TSO disabled by default
+
+Data corruption has been observed to be produced by TSO. For instance,
+accessing files on a NFS-server with TSO enabled results in different data
+transferred each time.
+
+This has been observed only on Kirkwood platforms, i.e. with the mv643xx_eth
+driver. Same tests on platforms using the mvneta ethernet driver have
+passed without errors.
+
+Make TSO disabled by default for now, until we can found a proper fix
+for the regression.
+
+Fixes: 3ae8f4e0b98 ('net: mv643xx_eth: Implement software TSO')
+Reported-by: Slawomir Gajzner <slawomir.gajzner <at> gmail.com>
+Reported-by: Julien D'Ascenzio <jdascenzio <at> yahoo.fr>
+Signed-off-by: Ezequiel Garcia <ezequiel.garcia <at> free-electrons.com>
+---
+--- a/drivers/net/ethernet/marvell/mv643xx_eth.c
++++ b/drivers/net/ethernet/marvell/mv643xx_eth.c
+@@ -3112,11 +3112,11 @@ static int mv643xx_eth_probe(struct plat
+       dev->watchdog_timeo = 2 * HZ;
+       dev->base_addr = 0;
+-      dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO;
++      dev->features = NETIF_F_SG | NETIF_F_IP_CSUM;
+       dev->vlan_features = dev->features;
+       dev->features |= NETIF_F_RXCSUM;
+-      dev->hw_features = dev->features;
++      dev->hw_features = dev->features | NETIF_F_TSO;
+       dev->priv_flags |= IFF_UNICAST_FLT;
+       dev->gso_max_segs = MV643XX_MAX_TSO_SEGS;