linux-uconsole/drivers/net/ethernet
Joel Stanley 828309eee5 net: ftgmac100: Disable hardware checksum on AST2600
[ Upstream commit 6fd45e79e8 ]

The AST2600 when using the i210 NIC over NC-SI has been observed to
produce incorrect checksum results with specific MTU values. This was
first observed when sending data across a long distance set of networks.

On a local network, the following test was performed using a 1MB file of
random data.

On the receiver run this script:

 #!/bin/bash
 while [ 1 ]; do
        # Zero the stats
        nstat -r  > /dev/null
        nc -l 9899 > test-file
        # Check for checksum errors
        TcpInCsumErrors=$(nstat | grep TcpInCsumErrors)
        if [ -z "$TcpInCsumErrors" ]; then
                echo No TcpInCsumErrors
        else
                echo TcpInCsumErrors = $TcpInCsumErrors
        fi
 done

On an AST2600 system:

 # nc <IP of  receiver host> 9899 < test-file

The test was repeated with various MTU values:

 # ip link set mtu 1410 dev eth0

The observed results:

 1500 - good
 1434 - bad
 1400 - good
 1410 - bad
 1420 - good

The test was repeated after disabling tx checksumming:

 # ethtool -K eth0 tx-checksumming off

And all MTU values tested resulted in transfers without error.

An issue with the driver cannot be ruled out, however there has been no
bug discovered so far.

David has done the work to take the original bug report of slow data
transfer between long distance connections and triaged it down to this
test case.

The vendor suspects this this is a hardware issue when using NC-SI. The
fixes line refers to the patch that introduced AST2600 support.

Reported-by: David Wilder <wilder@us.ibm.com>
Reviewed-by: Dylan Hung <dylan_hung@aspeedtech.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-06-06 08:42:40 +02:00
..
3com
8390 net:mcf8390: Use platform_get_irq() to get the interrupt 2022-04-08 14:39:48 +02:00
adaptec
aeroflex net: ethernet: aeroflex: fix UAF in greth_of_remove 2021-07-14 16:56:24 +02:00
agere
alacritech
allwinner
alteon
altera net: altera: set a couple error code in probe() 2021-12-14 11:32:43 +01:00
amazon net: ena: Fix error handling when calculating max IO queues number 2022-01-11 15:25:01 +01:00
amd net: amd-xgbe: disable interrupts during pci removal 2022-02-16 12:54:26 +01:00
apm drivers: net: xgene: Fix regression in CRC stripping 2022-03-28 09:57:09 +02:00
apple
aquantia net: atlantic: verify hw_head_ lies within TX buffer ring 2022-05-25 09:18:01 +02:00
arc net: arc: select CRC32 2021-10-20 11:45:03 +02:00
atheros net: ag71xx: Fix a potential double free in error handling paths 2022-01-05 12:40:31 +01:00
aurora
broadcom net: systemport: Fix an error handling path in bcm_sysport_probe() 2022-05-25 09:17:58 +02:00
brocade
cadence net: macb: Increment rx bd head after allocating skb and buffer 2022-05-25 09:17:57 +02:00
calxeda
cavium cavium: Fix return values of the probe function 2021-11-18 14:03:41 +01:00
chelsio net: chelsio: cxgb3: check the return value of pci_find_capability() 2022-03-08 19:09:37 +01:00
cirrus
cisco
cortina net: gemini: allow any RGMII interface mode 2022-01-27 10:54:20 +01:00
davicom
dec ethernet: tulip: fix missing pci_disable_device() on error in tulip_init_one() 2022-05-25 09:18:00 +02:00
dlink
emulex Revert "be2net: disable bh with spin_lock in be_process_mcc" 2021-07-14 16:56:29 +02:00
ezchip net: ethernet: ezchip: fix error handling 2021-07-14 16:56:24 +02:00
faraday net: ftgmac100: Disable hardware checksum on AST2600 2022-06-06 08:42:40 +02:00
freescale net: fec: add missing of_node_put() in fec_enet_init_stop_mode() 2022-05-09 09:05:05 +02:00
fujitsu net: fujitsu: fix potential null-ptr-deref 2021-06-03 09:00:40 +02:00
google gve: fix the wrong AdminQ buffer queue index check 2022-02-08 18:30:39 +01:00
hisilicon net: hns3: add return value for mailbox handling in PF 2022-05-09 09:05:04 +02:00
huawei hinic: fix bug of wq out of bound access 2022-05-12 12:25:41 +02:00
i825xx lib82596: Fix IRQ check in sni_82596_probe 2022-01-27 10:54:36 +01:00
ibm Revert "ibmvnic: Add ethtool private flag for driver-defined queue limits" 2022-05-09 09:05:06 +02:00
intel igb: skip phy status check where unavailable 2022-05-25 09:17:59 +02:00
marvell octeontx2-pf: Forward error codes to VF 2022-02-01 17:25:45 +01:00
mediatek net: ethernet: mediatek: add missing of_node_put() in mtk_sgmii_init() 2022-05-12 12:25:40 +02:00
mellanox net/mlx5e: Properly block LRO when XDP is enabled 2022-05-25 09:17:59 +02:00
micrel Revert "net: micrel: fix KS8851_MLL Kconfig" 2022-04-27 13:53:58 +02:00
microchip lan743x: fix deadlock in lan743x_phy_link_status_change() 2021-12-01 09:19:06 +01:00
moxa net: moxa: fix UAF in moxart_mac_probe 2021-07-25 14:36:19 +02:00
mscc net: mscc: ocelot: avoid corrupting hardware counters when moving VCAP filters 2022-05-18 10:23:43 +02:00
myricom myri10ge: fix an incorrect free for skb in myri10ge_sw_tso 2022-04-20 09:23:23 +02:00
natsemi natsemi: xtensa: fix section mismatch warnings 2021-12-08 09:03:23 +01:00
neterion ethernet: s2io: fix setting mac address during resume 2021-10-20 11:45:04 +02:00
netronome nfp: bpf: silence bitwise vs. logical OR warning 2022-05-15 20:00:09 +02:00
ni
nvidia
nxp net: ethernet: lpc_eth: Handle error for clk_enable 2022-03-16 14:15:58 +01:00
oki-semi net: pch_gbe: Use proper accessors to BE data in pch_ptp_match() 2021-07-19 09:44:37 +02:00
packetengines
pasemi
pensando ionic: fix missing pci_release_regions() on error in ionic_probe() 2022-05-18 10:23:43 +02:00
qlogic net/qla3xxx: Fix a test in ql_reset_work() 2022-05-25 09:17:58 +02:00
qualcomm net: qualcomm: fix QCA7000 checksum handling 2021-09-15 09:50:46 +02:00
rdc r6040: Restore MDIO clock frequency after MAC reset 2021-09-22 12:27:57 +02:00
realtek r8169: Add device 10ec:8162 to driver r8169 2021-11-18 14:03:43 +01:00
renesas net: renesas: sh_eth: Fix freeing wrong tx descriptor 2021-09-22 12:28:06 +02:00
rocker rocker: fix a sleeping in atomic bug 2022-01-27 10:54:01 +01:00
samsung net: sxgbe: fix return value of __setup handler 2022-03-08 19:09:35 +01:00
seeq
sfc net: sfc: ef10: fix memory leak in efx_ef10_mtd_probe() 2022-05-18 10:23:45 +02:00
sgi net: sgi: ioc3-eth: check return value after calling platform_get_resource() 2021-07-19 09:44:49 +02:00
silan
sis sis900: Fix missing pci_disable_device() in probe and remove 2021-08-04 12:46:44 +02:00
smsc smsc911x: allow using IRQ0 2022-05-12 12:25:42 +02:00
socionext
stmicro net: stmmac: fix missing pci_disable_device() on error in stmmac_pci_probe() 2022-05-25 09:18:00 +02:00
sun ethernet: sun: Free the coherent when failing in probing 2022-04-08 14:39:47 +02:00
synopsys
tehuti
ti net: cpsw: add missing of_node_put() in cpsw_probe_dt() 2022-05-12 12:25:40 +02:00
toshiba
tundra
via
wiznet net: w5100: check return value after calling platform_get_resource() 2021-09-18 13:40:35 +02:00
xilinx net: emaclite: Don't advertise 1000BASE-T and do auto negotiation 2022-05-18 10:23:45 +02:00
xircom
xscale
dnet.c
dnet.h
ec_bhf.c net: ethernet: fix potential use-after-free in ec_bhf_remove 2021-06-23 14:42:47 +02:00
ethoc.c
fealnx.c
jme.c
jme.h
Kconfig net: korina: select CRC32 2021-10-20 11:45:03 +02:00
korina.c
lantiq_etop.c
lantiq_xrx200.c net: lantiq_xrx200: fix statistics of received bytes 2022-01-05 12:40:31 +01:00
Makefile