linux_dsm_epyc7002/drivers/net/ethernet/mellanox/mlx4
Eric Dumazet 2d943adf86 net/mlx4_en: optimizes get_fixed_ipv6_csum()
While trying to support CHECKSUM_COMPLETE for IPV6 fragments,
I had to experiments various hacks in get_fixed_ipv6_csum().
I must admit I could not find how to implement this :/

However, get_fixed_ipv6_csum() does a lot of redundant operations,
calling csum_partial() twice.

First csum_partial() computes the checksum of saddr and daddr,
put in @csum_pseudo_hdr. Undone later in the second csum_partial()
computed on whole ipv6 header.

Then nexthdr is added once, added a second time, then substracted.

payload_len is added once, then substracted.

Really all this can be reduced to two add_csum(), to add back 6 bytes
that were removed by mlx4 when providing hw_checksum in RX descriptor.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Saeed Mahameed <saeedm@mellanox.com>
Cc: Tariq Toukan <tariqt@mellanox.com>
Reviewed-by: Saeed Mahameed <saeedm@mellanox.com>
Acked-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-05-04 11:59:19 -04:00
..
alloc.c mlx4: sizeof style usage 2017-08-16 11:01:57 -07:00
catas.c net/mlx4_core: Convert timers to use timer_setup() 2017-10-09 12:19:41 -04:00
cmd.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-09-06 14:45:08 -07:00
cq.c drivers, net, mlx4: convert mlx4_cq.refcount from atomic_t to refcount_t 2017-10-22 02:22:38 +01:00
en_clock.c net/mlx4_en: fix overflow in mlx4_en_init_timestamp() 2017-02-26 15:39:43 -05:00
en_cq.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-09-06 14:45:08 -07: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 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-04-01 19:49:34 -04:00
en_main.c net/mlx4_en: Fix mixed PFC and Global pause user control requests 2018-03-27 12:02:30 -04:00
en_netdev.c net/mlx4_en: Remove unnecessary warn print in reset config 2018-02-27 14:53:26 -05: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 net/mlx4_en: Check the enabling pptx/pprx flags in SET_PORT wrapper flow 2017-01-30 15:26:43 -05:00
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: optimizes get_fixed_ipv6_csum() 2018-05-04 11:59:19 -04:00
en_selftest.c net/mlx4_en: Fix selftest for small MTUs 2017-12-13 16:38:36 -05:00
en_tx.c mlx4: Don't bother using skb_tx_hash in mlx4_en_select_queue 2018-04-29 22:01:32 -04:00
eq.c net/mlx4_core: Fix misplaced brackets of sizeof 2017-08-29 14:58:32 -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 RDMA/mlx4: Move flag constants to uapi header 2018-03-15 15:58:03 -06:00
fw.h net/mlx4_core: Dynamically allocate structs at mlx4_slave_cap 2017-08-29 14:58:32 -07:00
icm.c mlx4: sizeof style usage 2017-08-16 11:01:57 -07:00
icm.h mlx4: sizeof style usage 2017-08-16 11:01:57 -07:00
intf.c mlx4: sizeof style usage 2017-08-16 11:01:57 -07:00
Kconfig net/mlx4: Use Kconfig flag to remove support of old gen2 Mellanox devices 2017-11-13 10:27:51 +09:00
main.c net/mlx4: fix spelling mistake: "failedi" -> "failed" 2018-05-01 14:17:29 -04:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mcg.c mlx4: sizeof style usage 2017-08-16 11:01:57 -07:00
mlx4_en.h net/mlx4_en: Add physical RX/TX bytes/packets counters 2018-02-27 14:53:26 -05:00
mlx4_stats.h net/mlx4_en: Add physical RX/TX bytes/packets counters 2018-02-27 14:53:26 -05:00
mlx4.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-09-06 14:45:08 -07:00
mr.c net/mlx4_core: Cleanup FMR unmapping flow 2017-12-28 12:24:05 -05:00
pd.c io-mapping: Specify mapping size for io_mapping_map_wc() 2016-04-28 12:17:32 +01:00
port.c net/mlx4: Add user mac FW update support 2017-08-29 14:58:32 -07:00
profile.c
qp.c IB/mlx4: Fix incorrectly releasing steerable UD QPs when have only ETH ports 2018-01-15 15:33:21 -07:00
reset.c
resource_tracker.c net/mlx4_core: Fix memory leak while delete slave's resources 2018-03-27 12:02:30 -04: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