summarylogtreecommitdiffstats
path: root/vsock.patch
diff options
context:
space:
mode:
Diffstat (limited to 'vsock.patch')
-rw-r--r--vsock.patch108
1 files changed, 68 insertions, 40 deletions
diff --git a/vsock.patch b/vsock.patch
index cf806c731c7b..9617ff200bdd 100644
--- a/vsock.patch
+++ b/vsock.patch
@@ -1,40 +1,68 @@
+diff --git a/vsock/Makefile b/vsock/Makefile
+index 5d92e9b..7d315e8 100644
+--- a/vsock/Makefile
++++ b/vsock/Makefile
+@@ -42,8 +42,11 @@ AUTOCONF_DIR := $(SRCROOT)/shared/autoconf
+ INCLUDE += -I$(SRCROOT)/shared
+ endif
+
+-
++ifdef KVERSION
++VM_UNAME = $(KVERSION)
++else
+ VM_UNAME = $(shell uname -r)
++endif
+
+ # Header directory for the running kernel
+ ifdef LINUXINCLUDE
+diff --git a/vsock/Makefile.kernel b/vsock/Makefile.kernel
+index 5218df2..374cc1f 100644
+--- a/vsock/Makefile.kernel
++++ b/vsock/Makefile.kernel
+@@ -25,7 +25,7 @@ INCLUDE += -I$(SRCROOT)/include
+ INCLUDE += -I$(SRCROOT)/linux
+ INCLUDE += -I$(SRCROOT)/common
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+ EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/netcreate_num_params.c, -DVMW_NETCREATE_KERNARG, )
+
+
diff --git a/vsock/linux/af_vsock.c b/vsock/linux/af_vsock.c
-index bde1497..40b7927 100644
+index bde1497..9f8f843 100644
--- a/vsock/linux/af_vsock.c
+++ b/vsock/linux/af_vsock.c
-@@ -232,13 +232,27 @@ static int VSockVmciStreamSetsockopt(struct socket *sock, int level, int optname
+@@ -232,13 +232,29 @@ static int VSockVmciStreamSetsockopt(struct socket *sock, int level, int optname
static int VSockVmciStreamGetsockopt(struct socket *sock, int level, int optname,
char __user *optval, int __user * optlen);
--static int VSockVmciDgramSendmsg(struct kiocb *kiocb,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
+ static int VSockVmciDgramSendmsg(struct kiocb *kiocb,
++#else
+static int VSockVmciDgramSendmsg(
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
-+ struct kiocb *kiocb,
+#endif
struct socket *sock, struct msghdr *msg, size_t len);
--static int VSockVmciDgramRecvmsg(struct kiocb *kiocb, struct socket *sock,
-+static int VSockVmciDgramRecvmsg(
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
-+ struct kiocb *kiocb,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
+ static int VSockVmciDgramRecvmsg(struct kiocb *kiocb, struct socket *sock,
++#else
++static int VSockVmciDgramRecvmsg(struct socket *sock,
+#endif
-+ struct socket *sock,
struct msghdr *msg, size_t len, int flags);
--static int VSockVmciStreamSendmsg(struct kiocb *kiocb,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
+ static int VSockVmciStreamSendmsg(struct kiocb *kiocb,
++#else
+static int VSockVmciStreamSendmsg(
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
-+ struct kiocb *kiocb,
+#endif
struct socket *sock, struct msghdr *msg, size_t len);
--static int VSockVmciStreamRecvmsg(struct kiocb *kiocb, struct socket *sock,
-+static int VSockVmciStreamRecvmsg(
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
-+ struct kiocb *kiocb,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
+ static int VSockVmciStreamRecvmsg(struct kiocb *kiocb, struct socket *sock,
++#else
++static int VSockVmciStreamRecvmsg(struct socket *sock,
+#endif
-+ struct socket *sock,
struct msghdr *msg, size_t len, int flags);
static int VSockVmciCreate(
-@@ -2822,11 +2836,18 @@ __VSockVmciCreate(struct net *net, // IN: Network namespace
+@@ -2822,11 +2838,18 @@ __VSockVmciCreate(struct net *net, // IN: Network namespace
* From 2.6.9 to until 2.6.12 sk_alloc() used a cache in
* the protocol structure, but you still had to specify the size and cache
* yourself.
@@ -49,25 +77,25 @@ index bde1497..40b7927 100644
+ * we have switched to passing 0.
*/
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 12)
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
+ sk = sk_alloc(net, vsockVmciFamilyOps.family, priority, &vsockVmciProto, 0);
+#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)
-@@ -4210,7 +4231,10 @@ VSockVmciShutdown(struct socket *sock, // IN
+@@ -4210,7 +4233,11 @@ VSockVmciShutdown(struct socket *sock, // IN
*/
static int
--VSockVmciDgramSendmsg(struct kiocb *kiocb, // UNUSED
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
+ VSockVmciDgramSendmsg(struct kiocb *kiocb, // UNUSED
++#else
+VSockVmciDgramSendmsg(
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
-+ struct kiocb *kiocb, // UNUSED
+#endif
struct socket *sock, // IN: socket to send on
struct msghdr *msg, // IN: message to send
size_t len) // IN: length of message
-@@ -4302,7 +4326,11 @@ VSockVmciDgramSendmsg(struct kiocb *kiocb, // UNUSED
+@@ -4302,7 +4329,11 @@ VSockVmciDgramSendmsg(struct kiocb *kiocb, // UNUSED
goto out;
}
@@ -79,19 +107,19 @@ index bde1497..40b7927 100644
dg->dst = VMCI_MAKE_HANDLE(remoteAddr->svm_cid, remoteAddr->svm_port);
dg->src = VMCI_MAKE_HANDLE(vsk->localAddr.svm_cid, vsk->localAddr.svm_port);
-@@ -4540,7 +4568,10 @@ VSockVmciStreamGetsockopt(struct socket *sock, // IN
+@@ -4540,7 +4571,11 @@ VSockVmciStreamGetsockopt(struct socket *sock, // IN
*/
static int
--VSockVmciStreamSendmsg(struct kiocb *kiocb, // UNUSED
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
+ VSockVmciStreamSendmsg(struct kiocb *kiocb, // UNUSED
++#else
+VSockVmciStreamSendmsg(
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
-+ struct kiocb *kiocb, // UNUSED
+#endif
struct socket *sock, // IN: socket to send on
struct msghdr *msg, // IN: message to send
size_t len) // IN: length of message
-@@ -4662,7 +4693,11 @@ VSockVmciStreamSendmsg(struct kiocb *kiocb, // UNUSED
+@@ -4662,7 +4697,11 @@ VSockVmciStreamSendmsg(struct kiocb *kiocb, // UNUSED
* able to send.
*/
@@ -103,19 +131,19 @@ index bde1497..40b7927 100644
len - totalWritten, 0);
if (written < 0) {
err = -ENOMEM;
-@@ -4709,7 +4744,10 @@ out:
+@@ -4709,7 +4748,11 @@ out:
*/
static int
--VSockVmciDgramRecvmsg(struct kiocb *kiocb, // UNUSED
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
+ VSockVmciDgramRecvmsg(struct kiocb *kiocb, // UNUSED
++#else
+VSockVmciDgramRecvmsg(
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
-+ struct kiocb *kiocb, // UNUSED
+#endif
struct socket *sock, // IN: socket to receive from
struct msghdr *msg, // IN/OUT: message to receive into
size_t len, // IN: length of receive buffer
-@@ -4759,7 +4797,11 @@ VSockVmciDgramRecvmsg(struct kiocb *kiocb, // UNUSED
+@@ -4759,7 +4802,11 @@ VSockVmciDgramRecvmsg(struct kiocb *kiocb, // UNUSED
}
/* Place the datagram payload in the user's iovec. */
@@ -127,19 +155,19 @@ index bde1497..40b7927 100644
if (err) {
goto out;
}
-@@ -4800,7 +4842,10 @@ out:
+@@ -4800,7 +4847,11 @@ out:
*/
static int
--VSockVmciStreamRecvmsg(struct kiocb *kiocb, // UNUSED
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 99)
+ VSockVmciStreamRecvmsg(struct kiocb *kiocb, // UNUSED
++#else
+VSockVmciStreamRecvmsg(
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
-+ struct kiocb *kiocb, // UNUSED
+#endif
struct socket *sock, // IN: socket to receive from
struct msghdr *msg, // IN/OUT: message to receive into
size_t len, // IN: length of receive buffer
-@@ -4905,9 +4950,17 @@ VSockVmciStreamRecvmsg(struct kiocb *kiocb, // UNUSED
+@@ -4905,9 +4956,17 @@ VSockVmciStreamRecvmsg(struct kiocb *kiocb, // UNUSED
}
if (flags & MSG_PEEK) {