summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Kravkov <dmitry@broadcom.com>2013-07-11 16:48:21 +0400
committerDavid S. Miller <davem@davemloft.net>2013-07-11 22:48:06 +0400
commit1b4fc0e249d61916b8a525b0e7b3c028232457c9 (patch)
tree41c74eca2e6cd7d3bf8033de7f1d0406679fd596
parenta8798a5c77c9981e88caef1373a3310bf8aed219 (diff)
downloadlinux-1b4fc0e249d61916b8a525b0e7b3c028232457c9.tar.xz
bnx2x: fix tunneling CSUM calculation
Since commit c957d09ffda417f6c8e3d1f10e2b05228607d6d7 "bnx2x: Remove sparse and coccinelle warnings" driver provided wrong partial csum for HW in tunneing scenarios. Reported-by: Eric Dumazet <eric.dumazet@gmail.com> CC: Alexander Duyck <alexander.h.duyck@intel.com> CC: Pravin Shelar <pshelar@nicira.com> CC: Cong Wang <xiyou.wangcong@gmail.com> Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com> Tested-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
index 3353efe79194..ee350bde1818 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -3543,9 +3543,9 @@ static void bnx2x_update_pbds_gso_enc(struct sk_buff *skb,
/* outer IP header info */
if (xmit_type & XMIT_CSUM_V4) {
struct iphdr *iph = ip_hdr(skb);
- u16 csum = (__force u16)(~iph->check) -
- (__force u16)iph->tot_len -
- (__force u16)iph->frag_off;
+ u32 csum = (__force u32)(~iph->check) -
+ (__force u32)iph->tot_len -
+ (__force u32)iph->frag_off;
pbd2->fw_ip_csum_wo_len_flags_frag =
bswab16(csum_fold((__force __wsum)csum));