ipv4: replace ip_fast_csum with csum_replace2
authorLi RongQing <roy.qing.li@gmail.com>
Thu, 14 Mar 2013 22:50:18 +0000 (22:50 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 Mar 2013 13:12:25 +0000 (09:12 -0400)
replace ip_fast_csum with csum_replace2 to save cpu cycles

Signed-off-by: Li RongQing <roy.qing.li@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/inet_lro.c

index cc280a3f4f966bbcc00563af6531c194bbe94bde..1975f52933c59309eac11ece4a6938a1fb3b435d 100644 (file)
@@ -29,6 +29,7 @@
 #include <linux/module.h>
 #include <linux/if_vlan.h>
 #include <linux/inet_lro.h>
+#include <net/checksum.h>
 
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Jan-Bernd Themann <themann@de.ibm.com>");
@@ -114,11 +115,9 @@ static void lro_update_tcp_ip_header(struct net_lro_desc *lro_desc)
                *(p+2) = lro_desc->tcp_rcv_tsecr;
        }
 
+       csum_replace2(&iph->check, iph->tot_len, htons(lro_desc->ip_tot_len));
        iph->tot_len = htons(lro_desc->ip_tot_len);
 
-       iph->check = 0;
-       iph->check = ip_fast_csum((u8 *)lro_desc->iph, iph->ihl);
-
        tcph->check = 0;
        tcp_hdr_csum = csum_partial(tcph, TCP_HDR_LEN(tcph), 0);
        lro_desc->data_csum = csum_add(lro_desc->data_csum, tcp_hdr_csum);