summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Teran <evan.teran@gmail.com>2015-05-06 20:56:12 -0400
committerEvan Teran <evan.teran@gmail.com>2015-05-06 20:56:12 -0400
commitcb645967849017b215d6a47818549c8c999a640e (patch)
tree814e6f66e0158cdb515b796ad5fb72089869a1d9
parentlooks like this patch was missing a portion, my bad (diff)
downloadvmware-cb645967849017b215d6a47818549c8c999a640e.tar.gz
vmware-cb645967849017b215d6a47818549c8c999a640e.tar.bz2
vmware-cb645967849017b215d6a47818549c8c999a640e.zip
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
-rw-r--r--app-emulation/vmware-modules/files/271-3.19-06-vmci_qpair.patch24
-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.ebuild2
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