diff options
author | Evan Teran <evan.teran@gmail.com> | 2015-05-06 20:56:12 -0400 |
---|---|---|
committer | Evan Teran <evan.teran@gmail.com> | 2015-05-06 20:56:12 -0400 |
commit | cb645967849017b215d6a47818549c8c999a640e (patch) | |
tree | 814e6f66e0158cdb515b796ad5fb72089869a1d9 /app-emulation | |
parent | looks like this patch was missing a portion, my bad (diff) | |
download | vmware-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
Diffstat (limited to 'app-emulation')
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 |