liquidio: fix the validation of rx checksum status from NIC hardware
authorVeerasenareddy Burru <vburru@marvell.com>
Mon, 28 Jan 2019 19:38:31 +0000 (19:38 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 29 Jan 2019 07:13:37 +0000 (23:13 -0800)
Fixed the code that was incorrectly interpreting the rx checksum validation
status from hardware, and updating kernel that the packet arrived with
correct checksum though the packet arrived with incorrect checksum and
hardware also indicated checksum is not correct.

Signed-off-by: Veerasenareddy Burru <vburru@marvell.com>
Acked-by: Derek Chickles <dchickles@marvell.com>
Signed-off-by: Felix Manlunas <fmanlunas@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cavium/liquidio/lio_core.c

index 825a28e5b544dd7033e3ea1f4d614b8263df5903..e21bf37246113475e303b984e4ac9f811b2ba322 100644 (file)
@@ -661,7 +661,8 @@ liquidio_push_packet(u32 octeon_id __attribute__((unused)),
                    (((rh->r_dh.encap_on) &&
                      (rh->r_dh.csum_verified & CNNIC_TUN_CSUM_VERIFIED)) ||
                     (!(rh->r_dh.encap_on) &&
-                     (rh->r_dh.csum_verified & CNNIC_CSUM_VERIFIED))))
+                     ((rh->r_dh.csum_verified & CNNIC_CSUM_VERIFIED) ==
+                       CNNIC_CSUM_VERIFIED))))
                        /* checksum has already been verified */
                        skb->ip_summed = CHECKSUM_UNNECESSARY;
                else