diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-05-27 14:56:13 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-05-27 14:56:13 +0000 |
commit | 564fdae9681f8287d76dfe5a22b34d5dc9634acc (patch) | |
tree | bbbc213362fa2f7b3dfe1444dee1ef32c23d1071 /target | |
parent | 52ec6374d448d86144332b5e8094b72c86602bd7 (diff) | |
download | upstream-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')
-rw-r--r-- | target/linux/kirkwood/patches-3.18/200-disable-tso.patch | 35 |
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; |