]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/core/iovec.c
Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[karo-tx-linux.git] / net / core / iovec.c
index a215545c0a345679af5929d675737739f17b33f5..16ad45d4882b56a2c531a0a944bc31c690ff5a4b 100644 (file)
@@ -112,9 +112,9 @@ int memcpy_toiovecend(const struct iovec *iov, unsigned char *kdata,
                        continue;
                }
                copy = min_t(unsigned int, iov->iov_len - offset, len);
-               offset = 0;
-               if (copy_to_user(iov->iov_base, kdata, copy))
+               if (copy_to_user(iov->iov_base + offset, kdata, copy))
                        return -EFAULT;
+               offset = 0;
                kdata += copy;
                len -= copy;
        }
@@ -147,10 +147,11 @@ int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len)
 }
 
 /*
- *     For use with ip_build_xmit
+ *     Copy iovec from kernel. Returns -EFAULT on error.
  */
-int memcpy_fromiovecend(unsigned char *kdata, struct iovec *iov, int offset,
-                       int len)
+
+int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov,
+                       int offset, int len)
 {
        /* Skip over the finished iovecs */
        while (offset >= iov->iov_len) {