aboutsummaryrefslogtreecommitdiffstats
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
commitc3e4dc503991873b627fc6a5951a6049b4e4cfb9 (patch)
tree4932ea42002e5008be84ad2188c497bddde66bca
parentb44b5dbb35327b57245ee5c726afc0d5c2161a9f (diff)
downloadmaster-187ad058-c3e4dc503991873b627fc6a5951a6049b4e4cfb9.tar.gz
master-187ad058-c3e4dc503991873b627fc6a5951a6049b4e4cfb9.tar.bz2
master-187ad058-c3e4dc503991873b627fc6a5951a6049b4e4cfb9.zip
kirkwood: disable TSO on the ethernet device by default, fixes data corruption issues (#19735)
Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@45776 3c298f89-4303-0410-b956-a3cf2f4a3e73
-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;