net/mlx4_en: CHECKSUM_COMPLETE support for fragments
Refine the RX check summing handling to propagate the hardware provided checksum so that we do not have to compute it later in software. Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Willem de Bruijn <willemb@google.com> Cc: Tariq Toukan <tariqt@mellanox.com> Acked-by: Tariq Toukan <tariqt@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2919ee2d41
commit
ce5a453c44
@ -821,14 +821,12 @@ xdp_drop_no_cnt:
|
||||
skb_record_rx_queue(skb, cq_ring);
|
||||
|
||||
if (likely(dev->features & NETIF_F_RXCSUM)) {
|
||||
if (cqe->status & cpu_to_be16(MLX4_CQE_STATUS_TCP |
|
||||
MLX4_CQE_STATUS_UDP)) {
|
||||
if ((cqe->status & cpu_to_be16(MLX4_CQE_STATUS_TCP |
|
||||
MLX4_CQE_STATUS_UDP)) &&
|
||||
(cqe->status & cpu_to_be16(MLX4_CQE_STATUS_IPOK)) &&
|
||||
cqe->checksum == cpu_to_be16(0xffff)) {
|
||||
bool l2_tunnel;
|
||||
|
||||
if (!((cqe->status & cpu_to_be16(MLX4_CQE_STATUS_IPOK)) &&
|
||||
cqe->checksum == cpu_to_be16(0xffff)))
|
||||
goto csum_none;
|
||||
|
||||
l2_tunnel = (dev->hw_enc_features & NETIF_F_RXCSUM) &&
|
||||
(cqe->vlan_my_qpn & cpu_to_be32(MLX4_CQE_L2_TUNNEL));
|
||||
ip_summed = CHECKSUM_UNNECESSARY;
|
||||
|
Loading…
Reference in New Issue
Block a user