summaryrefslogtreecommitdiff
path: root/app-emulation/vmware-modules/files/279-3.19-04-iovec.patch
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/vmware-modules/files/279-3.19-04-iovec.patch')
-rw-r--r--app-emulation/vmware-modules/files/279-3.19-04-iovec.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/app-emulation/vmware-modules/files/279-3.19-04-iovec.patch b/app-emulation/vmware-modules/files/279-3.19-04-iovec.patch
new file mode 100644
index 000000000000..9103c555663d
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-3.19-04-iovec.patch
@@ -0,0 +1,39 @@
+diff -rupN vmci-only.old/linux/vmciKernelIf.c vmci-only/linux/vmciKernelIf.c
+--- vmci-only.old/linux/vmciKernelIf.c 2015-04-28 18:05:56.000000000 +0000
++++ vmci-only/linux/vmciKernelIf.c 2015-07-06 08:02:08.314262258 +0000
+@@ -40,6 +40,7 @@
+ #include <linux/socket.h> /* For memcpy_{to,from}iovec(). */
+ #include <linux/vmalloc.h>
+ #include <linux/wait.h>
++#include <linux/skbuff.h>
+
+ #include "compat_highmem.h"
+ #include "compat_interrupt.h"
+@@ -1227,11 +1228,11 @@ __VMCIMemcpyToQueue(VMCIQueue *queue,
+ }
+
+ if (isIovec) {
+- struct iovec *iov = (struct iovec *)src;
++ struct msghdr *msg = (struct msghdr *)src;
+ int err;
+
+ /* The iovec will track bytesCopied internally. */
+- err = memcpy_fromiovec((uint8 *)va + pageOffset, iov, toCopy);
++ err = memcpy_from_msg((u8 *)va + pageOffset, msg, toCopy);
+ if (err != 0) {
+ if (!kernelIf->isDataMapped) {
+ kunmap(kernelIf->page[pageIndex]);
+@@ -1302,11 +1303,11 @@ __VMCIMemcpyFromQueue(void *dest,
+ }
+
+ if (isIovec) {
+- struct iovec *iov = (struct iovec *)dest;
++ struct msghdr *msg = (struct msghdr *)dest;
+ int err;
+
+ /* The iovec will track bytesCopied internally. */
+- err = memcpy_toiovec(iov, (uint8 *)va + pageOffset, toCopy);
++ err = memcpy_to_msg(msg, (uint8 *)va + pageOffset, toCopy);
+ if (err != 0) {
+ if (!kernelIf->isDataMapped) {
+ kunmap(kernelIf->page[pageIndex]);