]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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>
Wed, 20 Feb 2019 09:09:05 +0000 (10:09 +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 04eb59e6b826911d1d6b673f1feeaf4d98797be1..27274170a2514f8ace001cbb80495a1cd7dafffa 100644 (file)
@@ -1065,7 +1065,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)