|
@@ -1,118 +0,0 @@
|
|
|
-From be288b60278c78eccfd347aacf4d3dd8771215a9 Mon Sep 17 00:00:00 2001
|
|
|
-From: Marc Gonzalez <marc_gonzalez@sigmadesigns.com>
|
|
|
-Date: Tue, 12 Jan 2016 14:01:42 +0100
|
|
|
-Subject: [PATCH] Port one/one_udp.c to Linux 4.1
|
|
|
-
|
|
|
-Kernel commit c0371da6047a replaced msg_iov and msg_iovlen with msg_iter
|
|
|
-in struct msghdr since 3.19
|
|
|
-
|
|
|
-one/one_udp.c: In function 'ksocket_send_iov':
|
|
|
-one/one_udp.c:186:9: error: 'struct msghdr' has no member named 'msg_iov'
|
|
|
-one/one_udp.c:187:9: error: 'struct msghdr' has no member named 'msg_iovlen'
|
|
|
-
|
|
|
-one/one_udp.c: In function 'ksocket_receive':
|
|
|
-one/one_udp.c:221:9: error: 'struct msghdr' has no member named 'msg_iov'
|
|
|
-one/one_udp.c:222:9: error: 'struct msghdr' has no member named 'msg_iovlen'
|
|
|
-
|
|
|
-The iov_iter interface
|
|
|
-https://lwn.net/Articles/625077/
|
|
|
-
|
|
|
-Kernel commit d8725c86aeba dropped the len parameter in sock_sendmsg
|
|
|
-since 4.1
|
|
|
-
|
|
|
-one/one_udp.c: In function 'ksocket_send_iov':
|
|
|
-one/one_udp.c:192:13: error: too many arguments to function 'sock_sendmsg'
|
|
|
-
|
|
|
-Signed-off-by: Marc Gonzalez <marc_gonzalez@sigmadesigns.com>
|
|
|
-
|
|
|
-Kernel commit 2da62906b1e29 dropped the size parameter in sock_recvmsg
|
|
|
-since 4.7
|
|
|
-
|
|
|
-In function 'ksocket_receive'
|
|
|
-one/one_udp.c:235:13: error: too many arguments to function 'sock_recvmsg'
|
|
|
-
|
|
|
-Signed-off-by: Matthew Shyu <matthew.shyu@amlogic.com>
|
|
|
----
|
|
|
- one/one_udp.c | 34 +++++++++++++++++++---------------
|
|
|
- 1 file changed, 19 insertions(+), 15 deletions(-)
|
|
|
-
|
|
|
-diff --git a/one/one_udp.c b/one/one_udp.c
|
|
|
-index 26b9e6a..9b59529 100644
|
|
|
---- a/one/one_udp.c
|
|
|
-+++ b/one/one_udp.c
|
|
|
-@@ -161,7 +161,7 @@ ksocket_send_iov( struct socket *sock,
|
|
|
- const struct iovec *iov,
|
|
|
- size_t iov_count )
|
|
|
- {
|
|
|
-- struct msghdr msg;
|
|
|
-+ struct msghdr msg = { addr, sizeof *addr };
|
|
|
- mm_segment_t oldfs;
|
|
|
- int size = 0;
|
|
|
- size_t len = 0;
|
|
|
-@@ -178,18 +178,20 @@ ksocket_send_iov( struct socket *sock,
|
|
|
- for (i=0; i<iov_count; i++)
|
|
|
- len += iov[i].iov_len;
|
|
|
-
|
|
|
-- msg.msg_flags = 0;
|
|
|
-- msg.msg_name = addr;
|
|
|
-- msg.msg_namelen = sizeof(struct sockaddr_in);
|
|
|
-- msg.msg_control = NULL;
|
|
|
-- msg.msg_controllen = 0;
|
|
|
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0) // commit c0371da6047a
|
|
|
- msg.msg_iov = (struct iovec*) iov;
|
|
|
- msg.msg_iovlen = iov_count;
|
|
|
-- msg.msg_control = NULL;
|
|
|
-+#else
|
|
|
-+ iov_iter_init(&msg.msg_iter, WRITE, iov, iov_count, len);
|
|
|
-+#endif
|
|
|
-
|
|
|
- oldfs = get_fs();
|
|
|
- set_fs(KERNEL_DS);
|
|
|
-- size = sock_sendmsg(sock,&msg,len);
|
|
|
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,1,0) // commit d8725c86aeba
|
|
|
-+ size = sock_sendmsg(sock, &msg, len);
|
|
|
-+#else
|
|
|
-+ size = sock_sendmsg(sock, &msg);
|
|
|
-+#endif
|
|
|
- set_fs(oldfs);
|
|
|
-
|
|
|
- return size;
|
|
|
-@@ -198,7 +200,7 @@ ksocket_send_iov( struct socket *sock,
|
|
|
- static int
|
|
|
- ksocket_receive(struct socket* sock, struct sockaddr_in* addr, void *buf, int len)
|
|
|
- {
|
|
|
-- struct msghdr msg;
|
|
|
-+ struct msghdr msg = { addr, sizeof *addr };
|
|
|
- struct iovec iov;
|
|
|
- mm_segment_t oldfs;
|
|
|
- int size = 0;
|
|
|
-@@ -213,18 +215,20 @@ ksocket_receive(struct socket* sock, struct sockaddr_in* addr, void *buf, int le
|
|
|
- iov.iov_base = buf;
|
|
|
- iov.iov_len = len;
|
|
|
-
|
|
|
-- msg.msg_flags = 0;
|
|
|
-- msg.msg_name = addr;
|
|
|
-- msg.msg_namelen = sizeof(struct sockaddr_in);
|
|
|
-- msg.msg_control = NULL;
|
|
|
-- msg.msg_controllen = 0;
|
|
|
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0) // commit c0371da6047a
|
|
|
- msg.msg_iov = &iov;
|
|
|
- msg.msg_iovlen = 1;
|
|
|
-- msg.msg_control = NULL;
|
|
|
-+#else
|
|
|
-+ iov_iter_init(&msg.msg_iter, READ, &iov, 1, len);
|
|
|
-+#endif
|
|
|
-
|
|
|
- oldfs = get_fs();
|
|
|
- set_fs(KERNEL_DS);
|
|
|
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0) // commit 2da62906b1e29
|
|
|
- size = sock_recvmsg(sock,&msg,len,msg.msg_flags);
|
|
|
-+#else
|
|
|
-+ size = sock_recvmsg(sock, &msg,msg.msg_flags);
|
|
|
-+#endif
|
|
|
- set_fs(oldfs);
|
|
|
-
|
|
|
- return size;
|
|
|
---
|
|
|
-2.11.0
|
|
|
-
|