linux-next: manual merge of the net-next tree with the syscalls tree

From: Stephen Rothwell
Date: Sun Mar 18 2018 - 20:26:18 EST


Hi all,

Today's linux-next merge of the net-next tree got a conflict in:

include/linux/socket.h

between commits:

06947f40e3e9 ("net: socket: add __sys_recvfrom() helper; remove in-kernel call to syscall")
bd4053a762c6 ("net: socket: move check for forbid_cmsg_compat to __sys_...msg()")

from the syscalls tree and commit:

d8d211a2a0c3 ("net: Make extern and export get_net_ns()")

from the net-next tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging. You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

--
Cheers,
Stephen Rothwell

diff --cc include/linux/socket.h
index e2b6bd4fe977,1ce1f768a58c..000000000000
--- a/include/linux/socket.h
+++ b/include/linux/socket.h
@@@ -356,30 -352,7 +356,31 @@@ extern long __sys_sendmsg(int fd, struc
extern int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen,
unsigned int flags, struct timespec *timeout);
extern int __sys_sendmmsg(int fd, struct mmsghdr __user *mmsg,
- unsigned int vlen, unsigned int flags);
+ unsigned int vlen, unsigned int flags,
+ bool forbid_cmsg_compat);
+
+/* helpers which do the actual work for syscalls */
+extern int __sys_recvfrom(int fd, void __user *ubuf, size_t size,
+ unsigned int flags, struct sockaddr __user *addr,
+ int __user *addr_len);
+extern int __sys_sendto(int fd, void __user *buff, size_t len,
+ unsigned int flags, struct sockaddr __user *addr,
+ int addr_len);
+extern int __sys_accept4(int fd, struct sockaddr __user *upeer_sockaddr,
+ int __user *upeer_addrlen, int flags);
+extern int __sys_socket(int family, int type, int protocol);
+extern int __sys_bind(int fd, struct sockaddr __user *umyaddr, int addrlen);
+extern int __sys_connect(int fd, struct sockaddr __user *uservaddr,
+ int addrlen);
+extern int __sys_listen(int fd, int backlog);
+extern int __sys_getsockname(int fd, struct sockaddr __user *usockaddr,
+ int __user *usockaddr_len);
+extern int __sys_getpeername(int fd, struct sockaddr __user *usockaddr,
+ int __user *usockaddr_len);
+extern int __sys_socketpair(int family, int type, int protocol,
+ int __user *usockvec);
+extern int __sys_shutdown(int fd, int how);
+

+ extern struct ns_common *get_net_ns(struct ns_common *ns);
#endif /* _LINUX_SOCKET_H */

Attachment: pgpIlZzCgTUVQ.pgp
Description: OpenPGP digital signature