]> xenbits.xen.org Git - xenclient/linux-2.6.27-pq.git/commitdiff
Fixed TCP cs offload problem by resetting IP header pointer after pull up.
authorRoss Philipson <ross.philipson@citrix.com>
Wed, 6 Jan 2010 21:06:39 +0000 (16:06 -0500)
committerRoss Philipson <ross.philipson@citrix.com>
Wed, 6 Jan 2010 21:06:39 +0000 (16:06 -0500)
Ticket: XC-82

master/netback-tcpchecksum-fix [new file with mode: 0644]
master/series

diff --git a/master/netback-tcpchecksum-fix b/master/netback-tcpchecksum-fix
new file mode 100644 (file)
index 0000000..25cc896
--- /dev/null
@@ -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) {
index 386d622b316a758d3adaa6ef38fe2f3659fe0b26..5a5c7815312bcf547e4db94c48fd021eb18f276c 100644 (file)
@@ -359,3 +359,4 @@ v2v-accept-nonblock
 v2v-dev
 v2v-fix-disconnect
 v2v-dev-ringsizes
+netback-tcpchecksum-fix