summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLi RongQing <roy.qing.li@gmail.com>2013-03-14 22:50:18 +0000
committerDavid S. Miller <davem@davemloft.net>2013-03-15 09:12:25 -0400
commit35353c2b42b97f5f62af5b5f7772d72334774d3a (patch)
tree163ca16cdb0899ba9278a208460f4fd6a8c30067
parent1bcac3b08e2f13c31f798ac46897e33f08cfbd53 (diff)
downloadlinux-35353c2b42b97f5f62af5b5f7772d72334774d3a.tar.gz
linux-35353c2b42b97f5f62af5b5f7772d72334774d3a.tar.bz2
linux-35353c2b42b97f5f62af5b5f7772d72334774d3a.zip
ipv4: replace ip_fast_csum with csum_replace2
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>
-rw-r--r--net/ipv4/inet_lro.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/net/ipv4/inet_lro.c b/net/ipv4/inet_lro.c
index cc280a3f4f96..1975f52933c5 100644
--- a/net/ipv4/inet_lro.c
+++ b/net/ipv4/inet_lro.c
@@ -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);