summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/vmware-modules')
-rw-r--r--app-emulation/vmware-modules/files/271-3.19-00-vmnet-warning.patch13
-rw-r--r--app-emulation/vmware-modules/files/271-3.19-01-vmblock-path.patch52
-rw-r--r--app-emulation/vmware-modules/files/271-3.19-02-vmci.patch29
-rw-r--r--app-emulation/vmware-modules/files/271-3.19-03-vmnet.patch29
-rw-r--r--app-emulation/vmware-modules/files/271-3.19-04-vsock.patch12
-rw-r--r--app-emulation/vmware-modules/files/271-3.19-05-vsock.patch15
-rw-r--r--app-emulation/vmware-modules/files/271-3.19-06-vsock.patch36
-rw-r--r--app-emulation/vmware-modules/vmware-modules-271.3-r1.ebuild10
8 files changed, 195 insertions, 1 deletions
diff --git a/app-emulation/vmware-modules/files/271-3.19-00-vmnet-warning.patch b/app-emulation/vmware-modules/files/271-3.19-00-vmnet-warning.patch
new file mode 100644
index 0000000..b4d30c9
--- /dev/null
+++ b/app-emulation/vmware-modules/files/271-3.19-00-vmnet-warning.patch
@@ -0,0 +1,13 @@
+diff -rupN vmnet-only/vm_device_version.h vmnet-only.new/vm_device_version.h
+--- vmnet-only/vm_device_version.h 2013-11-06 00:40:52.000000000 -0500
++++ vmnet-only.new/vm_device_version.h 2015-05-05 12:03:06.879202223 -0400
+@@ -53,7 +53,9 @@
+ * VMware HD Audio codec
+ * VMware HD Audio controller
+ */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
+ #define PCI_VENDOR_ID_VMWARE 0x15AD
++#endif
+ #define PCI_DEVICE_ID_VMWARE_SVGA2 0x0405
+ #define PCI_DEVICE_ID_VMWARE_SVGA 0x0710
+ #define PCI_DEVICE_ID_VMWARE_NET 0x0720
diff --git a/app-emulation/vmware-modules/files/271-3.19-01-vmblock-path.patch b/app-emulation/vmware-modules/files/271-3.19-01-vmblock-path.patch
new file mode 100644
index 0000000..4bf17e1
--- /dev/null
+++ b/app-emulation/vmware-modules/files/271-3.19-01-vmblock-path.patch
@@ -0,0 +1,52 @@
+diff -rupN vmblock-only.orig/linux/dentry.c vmblock-only/linux/dentry.c
+--- vmblock-only.orig/linux/dentry.c 2015-02-14 18:05:46.000000000 -0500
++++ vmblock-only/linux/dentry.c 2015-02-14 18:09:59.000000000 -0500
+@@ -63,7 +63,7 @@ DentryOpRevalidate(struct dentry *dentry
+ unsigned int flags) // IN: lookup flags & intent
+ {
+ VMBlockInodeInfo *iinfo;
+- struct nameidata actualNd;
++ struct path actualNd;
+ struct dentry *actualDentry;
+ int ret;
+
+diff -rupN vmblock-only.orig/linux/filesystem.c vmblock-only/linux/filesystem.c
+--- vmblock-only.orig/linux/filesystem.c 2014-11-20 19:29:15.000000000 -0500
++++ vmblock-only/linux/filesystem.c 2015-02-14 18:10:49.000000000 -0500
+@@ -322,7 +322,7 @@ Iget(struct super_block *sb, // IN: f
+ {
+ VMBlockInodeInfo *iinfo;
+ struct inode *inode;
+- struct nameidata actualNd;
++ struct path actualNd;
+
+ ASSERT(sb);
+
+diff -rupN vmblock-only.orig/shared/compat_namei.h vmblock-only/shared/compat_namei.h
+--- vmblock-only.orig/shared/compat_namei.h 2014-11-20 19:29:15.000000000 -0500
++++ vmblock-only/shared/compat_namei.h 2015-02-14 18:08:38.000000000 -0500
+@@ -26,21 +26,21 @@
+ * struct. They were both replaced with a struct path.
+ */
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
+-#define compat_vmw_nd_to_dentry(nd) (nd).path.dentry
++#define compat_vmw_nd_to_dentry(nd) (nd).dentry
+ #else
+ #define compat_vmw_nd_to_dentry(nd) (nd).dentry
+ #endif
+
+ /* In 2.6.25-rc2, path_release(&nd) was replaced with path_put(&nd.path). */
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
+-#define compat_path_release(nd) path_put(&(nd)->path)
++#define compat_path_release(nd) path_put(nd)
+ #else
+ #define compat_path_release(nd) path_release(nd)
+ #endif
+
+ /* path_lookup was removed in 2.6.39 merge window VFS merge */
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)
+-#define compat_path_lookup(name, flags, nd) kern_path(name, flags, &((nd)->path))
++#define compat_path_lookup(name, flags, nd) kern_path(name, flags, nd)
+ #else
+ #define compat_path_lookup(name, flags, nd) path_lookup(name, flags, nd)
+ #endif
diff --git a/app-emulation/vmware-modules/files/271-3.19-02-vmci.patch b/app-emulation/vmware-modules/files/271-3.19-02-vmci.patch
new file mode 100644
index 0000000..a8ec2b1
--- /dev/null
+++ b/app-emulation/vmware-modules/files/271-3.19-02-vmci.patch
@@ -0,0 +1,29 @@
+diff -rupN vmci-only/linux/vmciKernelIf.c vmci-only.new/linux/vmciKernelIf.c
+--- vmci-only/linux/vmciKernelIf.c 2015-05-05 11:22:55.276071501 -0400
++++ vmci-only.new/linux/vmciKernelIf.c 2015-05-05 11:23:58.912074950 -0400
+@@ -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"
+diff -rupN vmci-only/linux/vmciKernelIf.c vmci-only.new/linux/vmciKernelIf.c
+--- vmci-only/linux/vmciKernelIf.c 2013-11-05 23:33:26.000000000 -0500
++++ vmci-only.new/linux/vmciKernelIf.c 2015-05-05 11:21:59.929068500 -0400
+@@ -1246,11 +1246,11 @@ __VMCIMemcpyFromQueue(void *dest,
+ }
+
+ if (isIovec) {
+- struct iovec *iov = (struct iovec *)dest;
++ struct msghdr *msg = 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) {
+ kunmap(kernelIf->page[pageIndex]);
+ return VMCI_ERROR_INVALID_ARGS;
+
diff --git a/app-emulation/vmware-modules/files/271-3.19-03-vmnet.patch b/app-emulation/vmware-modules/files/271-3.19-03-vmnet.patch
new file mode 100644
index 0000000..041bfb6
--- /dev/null
+++ b/app-emulation/vmware-modules/files/271-3.19-03-vmnet.patch
@@ -0,0 +1,29 @@
+diff -ur vmnet-only.orig/driver.c vmnet-only/driver.c
+--- vmnet-only.orig/driver.c 2014-06-13 02:38:25.000000000 +0200
++++ vmnet-only/driver.c 2015-02-21 17:31:22.630656305 +0100
+@@ -1236,8 +1236,8 @@
+ struct inode *inode = NULL;
+ long err;
+
+- if (filp && filp->f_dentry) {
+- inode = filp->f_dentry->d_inode;
++ if (filp && filp->f_path.dentry) {
++ inode = filp->f_path.dentry->d_inode;
+ }
+ err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
+ return err;
+diff -ur vmnet-only.orig/userif.c vmnet-only/userif.c
+--- vmnet-only.orig/userif.c 2014-06-13 02:38:25.000000000 +0200
++++ vmnet-only/userif.c 2015-02-21 17:37:46.154589854 +0100
+@@ -523,7 +523,10 @@
+ .iov_base = buf,
+ .iov_len = len,
+ };
+- return skb_copy_datagram_iovec(skb, 0, &iov, len);
++ struct iov_iter to;
++
++ iov_iter_init(&to, READ, &iov, 1, len);
++ return skb_copy_datagram_iter(skb, 0, &to, len);
+ }
+
+
diff --git a/app-emulation/vmware-modules/files/271-3.19-04-vsock.patch b/app-emulation/vmware-modules/files/271-3.19-04-vsock.patch
new file mode 100644
index 0000000..8c9d3cb
--- /dev/null
+++ b/app-emulation/vmware-modules/files/271-3.19-04-vsock.patch
@@ -0,0 +1,12 @@
+diff -rupN vsock-only/linux/af_vsock.c vsock-only.new/linux/af_vsock.c
+--- vsock-only/linux/af_vsock.c 2015-05-05 11:26:05.145081792 -0400
++++ vsock-only.new/linux/af_vsock.c 2015-05-05 11:30:54.304097466 -0400
+@@ -4266,7 +4266,7 @@ VSockVmciDgramSendmsg(struct kiocb *kioc
+ goto out;
+ }
+
+- memcpy_fromiovec(VMCI_DG_PAYLOAD(dg), msg->msg_iov, len);
++ memcpy_from_msg(VMCI_DG_PAYLOAD(dg), msg, len);
+
+ dg->dst = VMCI_MAKE_HANDLE(remoteAddr->svm_cid, remoteAddr->svm_port);
+ dg->src = VMCI_MAKE_HANDLE(vsk->localAddr.svm_cid, vsk->localAddr.svm_port);
diff --git a/app-emulation/vmware-modules/files/271-3.19-05-vsock.patch b/app-emulation/vmware-modules/files/271-3.19-05-vsock.patch
new file mode 100644
index 0000000..2e41230
--- /dev/null
+++ b/app-emulation/vmware-modules/files/271-3.19-05-vsock.patch
@@ -0,0 +1,15 @@
+diff -rupN vsock-only/linux/af_vsock.c vsock-only.new/linux/af_vsock.c
+--- vsock-only/linux/af_vsock.c 2015-05-05 11:31:35.710099711 -0400
++++ vsock-only.new/linux/af_vsock.c 2015-05-05 11:36:33.260115840 -0400
+@@ -4727,7 +4727,11 @@ VSockVmciDgramRecvmsg(struct kiocb *kioc
+ }
+
+ /* Place the datagram payload in the user's iovec. */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
+ err = skb_copy_datagram_iovec(skb, sizeof *dg, msg->msg_iov, payloadLen);
++#else
++ err = skb_copy_datagram_iter(skb, sizeof *dg, &msg->msg_iter, payloadLen);
++#endif
+ if (err) {
+ goto out;
+ }
diff --git a/app-emulation/vmware-modules/files/271-3.19-06-vsock.patch b/app-emulation/vmware-modules/files/271-3.19-06-vsock.patch
new file mode 100644
index 0000000..a2b0136
--- /dev/null
+++ b/app-emulation/vmware-modules/files/271-3.19-06-vsock.patch
@@ -0,0 +1,36 @@
+diff -rupN vsock-only/linux/af_vsock.c vsock-only.new/linux/af_vsock.c
+--- vsock-only/linux/af_vsock.c 2015-05-05 11:51:59.794166063 -0400
++++ vsock-only.new/linux/af_vsock.c 2015-05-05 11:53:38.621171420 -0400
+@@ -4874,9 +4874,11 @@ VSockVmciStreamRecvmsg(struct kiocb *kio
+ }
+
+ if (flags & MSG_PEEK) {
+- read = vmci_qpair_peekv(vsk->qpair, msg->msg_iov, len - copied, 0);
++ struct iovec iov = iov_iter_iovec(&msg->msg_iter);
++ read = vmci_qpair_peekv(vsk->qpair, &iov, len - copied, 0);
+ } else {
+- read = vmci_qpair_dequev(vsk->qpair, msg->msg_iov, len - copied, 0);
++ struct iovec iov = iov_iter_iovec(&msg->msg_iter);
++ read = vmci_qpair_dequev(vsk->qpair, &iov, len - copied, 0);
+ }
+
+ if (read < 0) {
+diff -rupN vsock-only/linux/af_vsock.c vsock-only.new/linux/af_vsock.c
+--- vsock-only/linux/af_vsock.c 2015-05-05 11:53:59.937172575 -0400
++++ vsock-only.new/linux/af_vsock.c 2015-05-05 11:59:25.824190240 -0400
+@@ -4628,9 +4628,12 @@ VSockVmciStreamSendmsg(struct kiocb *kio
+ * size. It is the caller's responsibility to check how many bytes we were
+ * able to send.
+ */
+-
+- written = vmci_qpair_enquev(vsk->qpair, msg->msg_iov,
+- len - totalWritten, 0);
++ {
++ struct iovec iov = iov_iter_iovec(&msg->msg_iter);
++ written = vmci_qpair_enquev(vsk->qpair, &iov,
++ len - totalWritten, 0);
++ }
++
+ if (written < 0) {
+ err = -ENOMEM;
+ goto outWait;
diff --git a/app-emulation/vmware-modules/vmware-modules-271.3-r1.ebuild b/app-emulation/vmware-modules/vmware-modules-271.3-r1.ebuild
index 96c6ccf..66c0b2b 100644
--- a/app-emulation/vmware-modules/vmware-modules-271.3-r1.ebuild
+++ b/app-emulation/vmware-modules/vmware-modules-271.3-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/vmware-modules-271.3.ebuild,v 1.5 2014/06/09 15:24:07 dilfridge Exp $
@@ -84,6 +84,14 @@ src_prepare() {
kernel_is ge 3 15 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.15-01-vsock.patch"
kernel_is ge 3 17 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.17-00-netdev.patch"
+ kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-00-vmnet-warning.patch"
+ kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-01-vmblock-path.patch"
+ kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-02-vmci.patch"
+ kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-03-vmnet.patch"
+ kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-04-vsock.patch"
+ kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-05-vsock.patch"
+ kernel_is ge 3 19 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.19-06-vsock.patch"
+
# Allow user patches so they can support RC kernels and whatever else
epatch_user
}