summarylogtreecommitdiffstats
path: root/vsock-11.1.2-4.2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'vsock-11.1.2-4.2.patch')
-rw-r--r--vsock-11.1.2-4.2.patch119
1 files changed, 119 insertions, 0 deletions
diff --git a/vsock-11.1.2-4.2.patch b/vsock-11.1.2-4.2.patch
new file mode 100644
index 000000000000..736aafdf1842
--- /dev/null
+++ b/vsock-11.1.2-4.2.patch
@@ -0,0 +1,119 @@
+diff -ur a/vsock-only/linux/af_vsock.c b/vsock-only/linux/af_vsock.c
+--- vsock-only/linux/af_vsock.c 2015-05-31 16:01:26.000000000 +0300
++++ vsock-only/linux/af_vsock.c 2015-08-07 05:26:39.000000000 +0300
+@@ -2826,7 +2826,9 @@
+ * network namespace, and the option to zero the sock was dropped.
+ *
+ */
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 12)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
++ sk = sk_alloc(net, vsockVmciFamilyOps.family, priority, &vsockVmciProto, 1);
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 12)
+ sk = sk_alloc(vsockVmciFamilyOps.family, priority,
+ vsockVmciProto.slab_obj_size, vsockVmciProto.slab);
+ #elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)
+@@ -4302,7 +4304,7 @@
+ 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);
+@@ -4662,7 +4664,7 @@
+ * 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;
+@@ -4721,6 +4723,7 @@
+ VMCIDatagram *dg;
+ size_t payloadLen;
+ struct sk_buff *skb;
++ struct iov_iter to;
+
+ sk = sock->sk;
+ noblock = flags & MSG_DONTWAIT;
+@@ -4759,7 +4762,9 @@
+ }
+
+ /* Place the datagram payload in the user's iovec. */
+- err = skb_copy_datagram_iovec(skb, sizeof *dg, msg->msg_iov, payloadLen);
++ // err = skb_copy_datagram_iovec(skb, sizeof *dg, msg->msg_iter, payloadLen);
++ iov_iter_init(&to, READ, (struct iovec *)&msg->msg_iter.iov, 1, payloadLen);
++ err = skb_copy_datagram_iter(skb, 0, &to, payloadLen);
+ if (err) {
+ goto out;
+ }
+@@ -4905,9 +4910,9 @@
+ }
+
+ 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 -ur a/vsock-only/linux/notify.c b/vsock-only/linux/notify.c
+--- vsock-only/linux/notify.c 2015-05-31 16:01:26.000000000 +0300
++++ vsock-only/linux/notify.c 2015-02-24 01:09:40.000000000 +0300
+@@ -516,7 +516,7 @@
+ PKT_FIELD(vsk, sentWaitingRead) = FALSE;
+ #endif
+
+- sk->sk_data_ready(sk, 0);
++ sk->sk_data_ready(sk);
+ }
+
+
+diff -ur a/vsock-only/linux/notifyQState.c b/vsock-only/linux/notifyQState.c
+--- vsock-only/linux/notifyQState.c 2015-05-31 16:01:26.000000000 +0300
++++ vsock-only/linux/notifyQState.c 2015-02-24 01:09:40.000000000 +0300
+@@ -164,7 +164,7 @@
+ struct sockaddr_vm *dst, // IN: unused
+ struct sockaddr_vm *src) // IN: unused
+ {
+- sk->sk_data_ready(sk, 0);
++ sk->sk_data_ready(sk);
+ }
+
+
+@@ -566,7 +566,7 @@
+ }
+
+ /* See the comment in VSockVmciNotifyPktSendPostEnqueue */
+- sk->sk_data_ready(sk, 0);
++ sk->sk_data_ready(sk);
+ }
+
+ return err;
+diff -ur a/vsock-only/Makefile b/vsock-only/Makefile
+--- vsock-only/Makefile 2015-05-31 16:01:25.000000000 +0300
++++ vsock-only/Makefile 2015-02-24 01:09:40.000000000 +0300
+@@ -131,7 +131,7 @@
+ > /dev/null 2>&1; then echo "$(2)"; else echo "$(3)"; fi)
+
+ CC_WARNINGS := -Wall -Wstrict-prototypes
+-CC_OPTS := $(GLOBAL_DEFS) $(CC_WARNINGS) -DVMW_USING_KBUILD
++CC_OPTS := $(GLOBAL_DEFS) $(CC_WARNINGS) -DVMW_USING_KBUILD -g0
+ ifdef VMX86_DEVEL
+ CC_OPTS += -DVMX86_DEVEL
+ endif
+diff -ur a/vsock-only/shared/vmci_kernel_if.h b/vsock-only/shared/vmci_kernel_if.h
+--- vsock-only/shared/vmci_kernel_if.h 2015-05-31 16:01:26.000000000 +0300
++++ vsock-only/shared/vmci_kernel_if.h 2015-02-24 02:51:12.000000000 +0300
+@@ -102,7 +102,7 @@
+ typedef struct semaphore VMCIMutex;
+ typedef PPN *VMCIPpnList; /* List of PPNs in produce/consume queue. */
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)
+- typedef kuid_t VMCIHostUser;
++ typedef uid_t VMCIHostUser;
+ #else
+ typedef uid_t VMCIHostUser;