enic: fix checksum validation for IPv6
authorGovindarajulu Varadarajan <gvaradar@cisco.com>
Wed, 30 Jan 2019 14:59:00 +0000 (06:59 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Feb 2019 18:45:00 +0000 (19:45 +0100)
[ Upstream commit 7596175e99b3d4bce28022193efd954c201a782a ]

In case of IPv6 pkts, ipv4_csum_ok is 0. Because of this, driver does
not set skb->ip_summed. So IPv6 rx checksum is not offloaded.

Signed-off-by: Govindarajulu Varadarajan <gvaradar@cisco.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/cisco/enic/enic_main.c

index 07282eb768671d4926fdfca2dc26920cf9d2f289..89acf7bc4cf905db126c8e9d2e818169a78b0b59 100644 (file)
@@ -1180,7 +1180,7 @@ static void enic_rq_indicate_buf(struct vnic_rq *rq,
                 * CHECSUM_UNNECESSARY.
                 */
                if ((netdev->features & NETIF_F_RXCSUM) && tcp_udp_csum_ok &&
-                   ipv4_csum_ok)
+                   (ipv4_csum_ok || ipv6))
                        skb->ip_summed = CHECKSUM_UNNECESSARY;
 
                if (vlan_stripped)