commit:     92cecf1dbaab4333b53269e65ecbee15d9b866b0
Author:     Evan Teran <evan.teran <AT> gmail <DOT> com>
AuthorDate: Tue May  5 16:42:05 2015 +0000
Commit:     Evan Teran <evan.teran <AT> gmail <DOT> com>
CommitDate: Tue May  5 16:42:05 2015 +0000
URL:        https://gitweb.gentoo.org/proj/vmware.git/commit/?id=92cecf1d

271 should now compile (and I beleive function correctly) on 3.19
I'll look into 4.x soon

Package-Manager: portage-2.2.18

 .../files/271-3.19-00-vmnet-warning.patch          | 13 ++++++
 .../files/271-3.19-01-vmblock-path.patch           | 52 ++++++++++++++++++++++
 .../vmware-modules/files/271-3.19-02-vmci.patch    | 29 ++++++++++++
 .../vmware-modules/files/271-3.19-03-vmnet.patch   | 29 ++++++++++++
 .../vmware-modules/files/271-3.19-04-vsock.patch   | 12 +++++
 .../vmware-modules/files/271-3.19-05-vsock.patch   | 15 +++++++
 .../vmware-modules/files/271-3.19-06-vsock.patch   | 36 +++++++++++++++
 .../vmware-modules/vmware-modules-271.3-r1.ebuild  | 10 ++++-
 8 files changed, 195 insertions(+), 1 deletion(-)

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
 }

Reply via email to