[PATCH net 0/1] Prevent DSA tags from breaking COE
Romain Gantois
romain.gantois at bootlin.com
Mon Dec 18 08:23:22 PST 2023
Hello everyone,
This is a bugfix for an issue that was recently brought up in two
reports:
https://lore.kernel.org/netdev/c57283ed-6b9b-b0e6-ee12-5655c1c54495@bootlin.com/
https://lore.kernel.org/netdev/e5c6c75f-2dfa-4e50-a1fb-6bf4cdb617c2@electromag.com.au/
The Checksum Offloading Engine of some stmmac cores (e.g. DWMAC1000)
computes an incorrect checksum when presented with DSA-tagged packets. This
causes all TCP/UDP transfers to break when the stmmac device is connected
to the CPU port of a DSA switch.
The main change introduced by this series is a new stmmac dma feature that
stmmac_mac_link_up() can check to detect cores that have DSA-incompatible
COEs. If the flag is set and the netdevice uses DSA, stmmac_xmit() will
complete checksumming in software instead of offloading it.
I've run some iperf3 tests and the TX hotpath performance doesn't seem
to be degraded by the field added to dma_features.
Best Regards,
Romain
Romain Gantois (1):
net: stmmac: Prevent DSA tags from breaking COE
drivers/net/ethernet/stmicro/stmmac/common.h | 1 +
.../net/ethernet/stmicro/stmmac/dwmac1000_dma.c | 1 +
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 16 +++++++++++++++-
3 files changed, 17 insertions(+), 1 deletion(-)
--
2.43.0
More information about the linux-arm-kernel
mailing list