[Buildroot] [PATCH 1/1] linux-fusion: fix build issues

Matthew Shyu matthew.shyu.amlogic at gmail.com
Mon Jul 3 09:09:33 UTC 2017


From: Matthew Shyu <matthew.shyu at amlogic.com>

size parameter from sock_recvmsg was removed from kernel API since 4.7

Signed-off-by: Matthew Shyu <matthew.shyu at amlogic.com>
---
 ... => 0004-Port-one-one_udp.c-to-Linux-4.9.patch} | 41 +++++++++++++++++-----
 1 file changed, 32 insertions(+), 9 deletions(-)
 rename package/linux-fusion/{0004-Port-one-one_udp.c-to-Linux-4.1.patch => 0004-Port-one-one_udp.c-to-Linux-4.9.patch} (72%)

diff --git a/package/linux-fusion/0004-Port-one-one_udp.c-to-Linux-4.1.patch b/package/linux-fusion/0004-Port-one-one_udp.c-to-Linux-4.9.patch
similarity index 72%
rename from package/linux-fusion/0004-Port-one-one_udp.c-to-Linux-4.1.patch
rename to package/linux-fusion/0004-Port-one-one_udp.c-to-Linux-4.9.patch
index e1bff64f3b..721f1a5047 100644
--- a/package/linux-fusion/0004-Port-one-one_udp.c-to-Linux-4.1.patch
+++ b/package/linux-fusion/0004-Port-one-one_udp.c-to-Linux-4.9.patch
@@ -1,7 +1,16 @@
-From be288b60278c78eccfd347aacf4d3dd8771215a9 Mon Sep 17 00:00:00 2001
-From: Marc Gonzalez <marc_gonzalez at sigmadesigns.com>
-Date: Tue, 12 Jan 2016 14:01:42 +0100
-Subject: [PATCH] Port one/one_udp.c to Linux 4.1
+From e41d1132d1e92fc05c51968d18dd667f552c0edc Mon Sep 17 00:00:00 2001
+From: Matthew Shyu <matthew.shyu at amlogic.com>
+Date: Thu, 29 Jun 2017 16:22:59 +0800
+Subject: [PATCH] Port one/one_udp.c to Linux 4.9
+
+Kernel removed size parameter from sock_recvmsg since 4.7
+
+In function 'ksocket_receive'
+one/one_udp.c:235:13: error: too many arguments to function 'sock_recvmsg'
+
+This patch is based on Marc Gonzalez's patch "Port one/one_udp.c to Linux 4.1"
+
+Logs from "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
@@ -23,13 +32,16 @@ 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 at sigmadesigns.com>
+Kernel commit 2da62906b1e29 dropped the size parameter in sock_recvmsg
+since 4.1
+
+Signed-off-by: Matthew Shyu <matthew.shyu at amlogic.com>
 ---
- one/one_udp.c | 30 +++++++++++++++---------------
- 1 file changed, 15 insertions(+), 15 deletions(-)
+ 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 26b9e6a1f729..b1daae164cdf 100644
+index 26b9e6a..9b59529 100644
 --- a/one/one_udp.c
 +++ b/one/one_udp.c
 @@ -161,7 +161,7 @@ ksocket_send_iov( struct socket      *sock,
@@ -78,7 +90,7 @@ index 26b9e6a1f729..b1daae164cdf 100644
       struct iovec iov;
       mm_segment_t oldfs;
       int size = 0;
-@@ -213,14 +215,12 @@ ksocket_receive(struct socket* sock, struct sockaddr_in* addr, void *buf, int le
+@@ -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;
  
@@ -97,3 +109,14 @@ index 26b9e6a1f729..b1daae164cdf 100644
  
       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
+
-- 
2.11.0



More information about the buildroot mailing list