mirror_ubuntu-kernels/drivers/net/ethernet/mellanox/mlx4
Saeed Mahameed 29dded89e8 net/mlx4_en: Force CHECKSUM_NONE for short ethernet frames
When an ethernet frame is padded to meet the minimum ethernet frame
size, the padding octets are not covered by the hardware checksum.
Fortunately the padding octets are usually zero's, which don't affect
checksum. However, it is not guaranteed. For example, switches might
choose to make other use of these octets.
This repeatedly causes kernel hardware checksum fault.

Prior to the cited commit below, skb checksum was forced to be
CHECKSUM_NONE when padding is detected. After it, we need to keep
skb->csum updated. However, fixing up CHECKSUM_COMPLETE requires to
verify and parse IP headers, it does not worth the effort as the packets
are so small that CHECKSUM_COMPLETE has no significant advantage.

Future work: when reporting checksum complete is not an option for
IP non-TCP/UDP packets, we can actually fallback to report checksum
unnecessary, by looking at cqe IPOK bit.

Fixes: 88078d98d1 ("net: pskb_trim_rcsum() and CHECKSUM_COMPLETE are friends")
Cc: Eric Dumazet <edumazet@google.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-02-12 12:26:21 -05:00
..
alloc.c cross-tree: phase out dma_zalloc_coherent() 2019-01-08 07:58:37 -05:00
catas.c net/mlx4_core: Add Crdump FW snapshot support 2018-07-12 17:37:13 -07:00
cmd.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
cq.c net/mlx4_core: Fix error handling when initializing CQ bufs in the driver 2019-01-24 21:48:26 -08:00
crdump.c net/mlx4_core: Use devlink region_snapshot parameter 2018-07-12 17:37:13 -07:00
en_clock.c
en_cq.c net/mlx4_en: remove fallback after kzalloc_node() 2018-12-17 11:18:02 -08:00
en_dcb_nl.c net/mlx4_en: Fix mixed PFC and Global pause user control requests 2018-03-27 12:02:30 -04:00
en_ethtool.c net/mlx4_core: Correctly set PFC param if global pause is turned off. 2018-12-08 21:26:36 -08:00
en_main.c net/mlx4_en: Use minimal rx and tx ring sizes on kdump kernel 2018-10-09 11:08:48 -07:00
en_netdev.c net/mlx4_en: Change min MTU size to ETH_MIN_MTU 2018-12-03 16:16:22 -08:00
en_port.c net/mlx4_en: Add physical RX/TX bytes/packets counters 2018-02-27 14:53:26 -05:00
en_port.h
en_resources.c net/mlx4: Fix endianness issue in qp context params 2017-10-09 10:33:05 -07:00
en_rx.c net/mlx4_en: Force CHECKSUM_NONE for short ethernet frames 2019-02-12 12:26:21 -05:00
en_selftest.c net/mlx4_en: Fix selftest for small MTUs 2017-12-13 16:38:36 -05:00
en_tx.c net/mlx4_en: remove fallback after kzalloc_node() 2018-12-17 11:18:02 -08:00
eq.c net/mlx4: Use cpumask_available for eq->affinity_mask 2018-09-21 19:20:22 -07:00
fw_qos.c net/mlx4: fix spelling mistake: "availible" -> "available" 2017-08-16 14:23:45 -07:00
fw_qos.h net/mlx4: fix spelling mistake: "availible" -> "available" 2017-08-16 14:23:45 -07:00
fw.c net/mlx4_core: Add masking for a few queries on HCA caps 2019-01-24 21:48:26 -08:00
fw.h net/mlx4_core: Add health buffer address capability 2018-07-12 17:37:13 -07:00
icm.c net/mlx4: replace pci_{,un}map_sg with dma_{,un}map_sg 2019-01-07 05:14:17 -08:00
icm.h net/mlx4: Get rid of page operation after dma_alloc_coherent 2019-01-07 05:14:17 -08:00
intf.c net/mlx4: fix spelling mistake: "Inrerface" -> "Interface" and rephrase message 2018-05-23 14:58:10 -04:00
Kconfig net/mlx4_en: Fix build break when CONFIG_INET is off 2018-12-03 16:16:22 -08:00
main.c net/mlx4_core: Fix several coding style errors 2018-12-03 16:34:32 -08:00
Makefile net/mlx4_core: Add Crdump FW snapshot support 2018-07-12 17:37:13 -07:00
mcg.c net/mlx4/mcg: Mark expected switch fall-throughs 2018-08-07 17:54:20 -07:00
mlx4_en.h net/mlx4_en: Change min MTU size to ETH_MIN_MTU 2018-12-03 16:16:22 -08:00
mlx4_stats.h net/mlx4_en: Add physical RX/TX bytes/packets counters 2018-02-27 14:53:26 -05:00
mlx4.h net/mlx4: Fix UBSAN warning of signed integer overflow 2018-11-15 16:09:31 -08:00
mr.c net/mlx4_core: Zero out lkey field in SW2HW_MPT fw command 2018-11-15 16:09:30 -08:00
pd.c
port.c net: ethernet: mlx4: Remove unnecessary parentheses 2018-06-04 10:14:39 -04:00
profile.c net/mlx4_core: Allow MTTs starting at any index 2018-07-25 16:30:38 -07:00
qp.c net/mlx4: Fix irq-unsafe spinlock usage 2018-05-23 15:48:58 -04:00
reset.c
resource_tracker.c net/mlx4_core: drop useless LIST_HEAD 2018-12-24 14:22:14 -08:00
sense.c
srq.c drivers, net, mlx4: convert mlx4_srq.refcount from atomic_t to refcount_t 2017-10-22 02:22:38 +01:00