commit:     cb645967849017b215d6a47818549c8c999a640e
Author:     Evan Teran <evan.teran <AT> gmail <DOT> com>
AuthorDate: Thu May  7 00:56:12 2015 +0000
Commit:     Evan Teran <evan.teran <AT> gmail <DOT> com>
CommitDate: Thu May  7 00:56:12 2015 +0000
URL:        https://gitweb.gentoo.org/proj/vmware.git/commit/?id=cb645967

trying to fix vsock's usage of VMCI interface, previous patch compiled... but 
was broken
as demonstrated by trying to do a VMWARE automatted install. This new patch 
looks better
but needs to be tested

 .../files/271-3.19-06-vmci_qpair.patch             | 24 +++++++++++++++
 .../vmware-modules/files/271-3.19-06-vsock.patch   | 36 ----------------------
 .../vmware-modules/vmware-modules-271.3-r1.ebuild  |  2 +-
 3 files changed, 25 insertions(+), 37 deletions(-)

diff --git a/app-emulation/vmware-modules/files/271-3.19-06-vmci_qpair.patch 
b/app-emulation/vmware-modules/files/271-3.19-06-vmci_qpair.patch
new file mode 100644
index 0000000..1849a37
--- /dev/null
+++ b/app-emulation/vmware-modules/files/271-3.19-06-vmci_qpair.patch
@@ -0,0 +1,24 @@
+diff -rupN vsock-only.old/linux/af_vsock.c vsock-only/linux/af_vsock.c
+--- vsock-only.old/linux/af_vsock.c     2015-05-06 20:41:47.684046762 -0400
++++ vsock-only/linux/af_vsock.c 2015-05-06 20:52:15.245080779 -0400
+@@ -4629,7 +4629,7 @@ VSockVmciStreamSendmsg(struct kiocb *kio
+        * able to send.
+        */
+ 
+-      written = vmci_qpair_enquev(vsk->qpair, msg->msg_iov,
++      written = vmci_qpair_enquev(vsk->qpair, &msg->msg_iter.iov,
+                                   len - totalWritten, 0);
+       if (written < 0) {
+          err = -ENOMEM;
+@@ -4874,9 +4874,9 @@ VSockVmciStreamRecvmsg(struct kiocb *kio
+          }
+ 
+          if (flags & MSG_PEEK) {
+-            read = vmci_qpair_peekv(vsk->qpair, msg->msg_iov, len - copied, 
0);
++            read = vmci_qpair_peekv(vsk->qpair, &msg->msg_iter.iov, len - 
copied, 0);
+          } else {
+-            read = vmci_qpair_dequev(vsk->qpair, msg->msg_iov, len - copied, 
0);
++            read = vmci_qpair_dequev(vsk->qpair, &msg->msg_iter.iov, len - 
copied, 0);
+          }
+ 
+          if (read < 0) {

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
deleted file mode 100644
index a2b0136..0000000
--- a/app-emulation/vmware-modules/files/271-3.19-06-vsock.patch
+++ /dev/null
@@ -1,36 +0,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: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 66c0b2b..3158493 100644
--- a/app-emulation/vmware-modules/vmware-modules-271.3-r1.ebuild
+++ b/app-emulation/vmware-modules/vmware-modules-271.3-r1.ebuild
@@ -90,7 +90,7 @@ src_prepare() {
        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"
+       kernel_is ge 3 19 0 && epatch 
"${FILESDIR}/${PV_MAJOR}-3.19-06-vmci_qpair.patch"
 
        # Allow user patches so they can support RC kernels and whatever else
        epatch_user

Reply via email to