From: Ross Philipson Date: Wed, 6 Jan 2010 21:06:39 +0000 (-0500) Subject: Fixed TCP cs offload problem by resetting IP header pointer after pull up. X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=6349cb41659b15e0215522e967843b37db412332;p=xenclient%2Flinux-2.6.27-pq.git Fixed TCP cs offload problem by resetting IP header pointer after pull up. Ticket: XC-82 --- diff --git a/master/netback-tcpchecksum-fix b/master/netback-tcpchecksum-fix new file mode 100644 index 0000000..25cc896 --- /dev/null +++ b/master/netback-tcpchecksum-fix @@ -0,0 +1,14 @@ +diff --git a/net/core/dev.c b/net/core/dev.c +index 297cb18..566e048 100644 +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -1791,6 +1791,9 @@ inline int skb_checksum_setup(struct sk_buff *skb) + if (!skb_pull_up_to(skb, iph + 1)) + goto out; + ++ /* Have to reset pointer, everything can change in __psbk_pull_tail() */ ++ iph = (void *)skb->data; ++ + th = skb->data + 4 * iph->ihl; + skb->csum_start = th - skb->head; + switch (iph->protocol) { diff --git a/master/series b/master/series index 386d622..5a5c781 100644 --- a/master/series +++ b/master/series @@ -359,3 +359,4 @@ v2v-accept-nonblock v2v-dev v2v-fix-disconnect v2v-dev-ringsizes +netback-tcpchecksum-fix