From: Veerasenareddy Burru <[email protected]>

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 <[email protected]>
Acked-by: Derek Chickles <[email protected]>
Signed-off-by: Felix Manlunas <[email protected]>
---
 drivers/net/ethernet/cavium/liquidio/lio_core.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

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
-- 
1.8.3.1

Reply via email to