net/mlx4_en: don't set CHECKSUM_COMPLETE on SCTP packets
authorDavide Caratti <dcaratti@redhat.com>
Thu, 3 Aug 2017 20:54:48 +0000 (22:54 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 9 Aug 2017 00:59:57 +0000 (17:59 -0700)
commite718fe450e616227b74d27a233cdf37b4df0c82b
tree44a5a7ef50e0b595c18bcfa766737b3dd962feb1
parenteb2a6b800c2d1336cce6709d48c42753a611c07b
net/mlx4_en: don't set CHECKSUM_COMPLETE on SCTP packets

if the NIC fails to validate the checksum on TCP/UDP, and validation of IP
checksum is successful, the driver subtracts the pseudo-header checksum
from the value obtained by the hardware and sets CHECKSUM_COMPLETE. Don't
do that if protocol is IPPROTO_SCTP, otherwise CRC32c validation fails.

V2: don't test MLX4_CQE_STATUS_IPV6 if MLX4_CQE_STATUS_IPV4 is set

Reported-by: Shuang Li <shuali@redhat.com>
Fixes: f8c6455bb04b ("net/mlx4_en: Extend checksum offloading by CHECKSUM COMPLETE")
Signed-off-by: Davide Caratti <dcaratti@redhat.com>
Acked-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/en_rx.c