diff options
Diffstat (limited to 'vsock.patch')
-rw-r--r-- | vsock.patch | 108 |
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) { |