diff -ur vmci-only.orig/linux/vmciKernelIf.c vmci-only/linux/vmciKernelIf.c --- vmci-only.orig/linux/vmciKernelIf.c 2014-06-13 01:20:45.000000000 +0200 +++ vmci-only/linux/vmciKernelIf.c 2015-02-21 17:59:47.011588979 +0100 @@ -1249,6 +1249,23 @@ return VMCI_SUCCESS; } +int memcpy_toiovec(struct iovec *iov, unsigned char *kdata, int len) +{ + while (len > 0) { + if (iov->iov_len) { + int copy = min_t(unsigned int, iov->iov_len, len); + if (copy_to_user(iov->iov_base, kdata, copy)) + return -EFAULT; + kdata += copy; + len -= copy; + iov->iov_len -= copy; + iov->iov_base += copy; + } + iov++; + } + + return 0; +} /* *-----------------------------------------------------------------------------