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