net: Fix skb_copy_datagram_from_iovec() to pass the right offset
authorSridhar Samudrala <sri@us.ibm.com>
Fri, 5 Jun 2009 09:35:40 +0000 (09:35 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 8 Jun 2009 07:25:38 +0000 (00:25 -0700)
I am working on enabling UFO between KVM guests using virtio-net and i have
some patches that i got working with 2.6.30-rc8. When i wanted to try them
with net-next-2.6, i noticed that virtio-net is not working with that tree.

After some debugging, it turned out to be several bugs in the recent patches
to fix aio with tun driver, specifically the following 2 commits.

http://git.kernel.org/?p=linux/kernel/git/davem/net-next-2.6.git;a=commitdiff;h=0a1ec07a67bd8b0033dace237249654d015efa21
http://git.kernel.org/?p=linux/kernel/git/davem/net-next-2.6.git;a=commitdiff;h=6f26c9a7555e5bcca3560919db9b852015077dae

Fix the call to memcpy_from_iovecend() in skb_copy_datagram_from_iovec
to pass the right iovec offset.

Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/datagram.c

index e2a36f05cdf70ff6510ef4d60d20e8e5e51edd66..774bcd9119d9bea556f9328ded57cb712c51dbd2 100644 (file)
@@ -466,7 +466,8 @@ int skb_copy_datagram_from_iovec(struct sk_buff *skb, int offset,
        if (copy > 0) {
                if (copy > len)
                        copy = len;
-               if (memcpy_fromiovecend(skb->data + offset, from, 0, copy))
+               if (memcpy_fromiovecend(skb->data + offset, from, from_offset,
+                                       copy))
                        goto fault;
                if ((len -= copy) == 0)
                        return 0;