aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/kirkwood
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2015-05-27 14:56:13 +0000
committerFelix Fietkau <nbd@openwrt.org>2015-05-27 14:56:13 +0000
commit564fdae9681f8287d76dfe5a22b34d5dc9634acc (patch)
treebbbc213362fa2f7b3dfe1444dee1ef32c23d1071 /target/linux/kirkwood
parent52ec6374d448d86144332b5e8094b72c86602bd7 (diff)
downloadupstream-564fdae9681f8287d76dfe5a22b34d5dc9634acc.tar.gz
upstream-564fdae9681f8287d76dfe5a22b34d5dc9634acc.tar.bz2
upstream-564fdae9681f8287d76dfe5a22b34d5dc9634acc.zip
kirkwood: disable TSO on the ethernet device by default, fixes data corruption issues (#19735)
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 45776
Diffstat (limited to 'target/linux/kirkwood')
-rw-r--r--target/linux/kirkwood/patches-3.18/200-disable-tso.patch35
1 files changed, 35 insertions, 0 deletions
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
index 0000000000..4e8126e8c2
--- /dev/null
+++ b/target/linux/kirkwood/patches-3.18/200-disable-tso.patch
@@ -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;