diff mbox series

[net-next] liquidio: fix the validation of rx checksum status from NIC hardware

Message ID 20190128193828.GA32464@felix-thinkpad.marvell.com
State Accepted
Delegated to: David Miller
Headers show
Series [net-next] liquidio: fix the validation of rx checksum status from NIC hardware | expand

Commit Message

Felix Manlunas Jan. 28, 2019, 7:38 p.m. UTC
From: Veerasenareddy Burru <vburru@marvell.com>

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>
---
 drivers/net/ethernet/cavium/liquidio/lio_core.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

David Miller Jan. 29, 2019, 7:13 a.m. UTC | #1
From: Felix Manlunas <fmanlunas@marvell.com>
Date: Mon, 28 Jan 2019 19:38:31 +0000

> From: Veerasenareddy Burru <vburru@marvell.com>
> 
> 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>

Applied, thanks.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/cavium/liquidio/lio_core.c 
b/drivers/net/ethernet/cavium/liquidio/lio_core.c
index 825a28e..e21bf37 100644
--- a/drivers/net/ethernet/cavium/liquidio/lio_core.c
+++ b/drivers/net/ethernet/cavium/liquidio/lio_core.c
@@ -661,7 +661,8 @@  static int octeon_setup_droq(struct octeon_device *oct, int q_no, int num_descs,
 		    (((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