Re: [MPTCP] [PATCH 24/24] net: pass a sockptr_t into ->setsockopt

To: Christoph Hellwig <hch@xxxxxx>
Subject: Re: [MPTCP] [PATCH 24/24] net: pass a sockptr_t into ->setsockopt
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>, Jakub Kicinski <kuba@xxxxxxxxxx>, Alexei Starovoitov <ast@xxxxxxxxxx>, Daniel Borkmann <daniel@xxxxxxxxxxxxx>, Alexey Kuznetsov <kuznet@xxxxxxxxxxxxx>, Hideaki YOSHIFUJI <yoshfuji@xxxxxxxxxxxxxx>, Eric Dumazet <edumazet@xxxxxxxxxx>, linux-crypto@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxxxxxx, bpf@xxxxxxxxxxxxxxx, netfilter-devel@xxxxxxxxxxxxxxx, coreteam@xxxxxxxxxxxxx, linux-sctp@xxxxxxxxxxxxxxx, linux-hams@xxxxxxxxxxxxxxx, linux-bluetooth@xxxxxxxxxxxxxxx, bridge@xxxxxxxxxxxxxxxxxxxxxxxxxx, linux-can@xxxxxxxxxxxxxxx, dccp@xxxxxxxxxxxxxxx, linux-decnet-user@xxxxxxxxxxxxxxxxxxxxx, linux-wpan@xxxxxxxxxxxxxxx, linux-s390@xxxxxxxxxxxxxxx, mptcp@xxxxxxxxxxxx, lvs-devel@xxxxxxxxxxxxxxx, rds-devel@xxxxxxxxxxxxxx, linux-afs@xxxxxxxxxxxxxxxxxxx, tipc-discussion@xxxxxxxxxxxxxxxxxxxxx, linux-x25@xxxxxxxxxxxxxxx
From: Matthieu Baerts <matthieu.baerts@xxxxxxxxxxxx>
Date: Wed, 22 Jul 2020 10:26:42 +0200
Hi Christoph,

On 20/07/2020 14:47, Christoph Hellwig wrote:
Rework the remaining setsockopt code to pass a sockptr_t instead of a
plain user pointer.  This removes the last remaining set_fs(KERNEL_DS)
outside of architecture specific code.

Signed-off-by: Christoph Hellwig <hch@xxxxxx>

diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 27b6f250b87dfd..30a8e697b9db9c 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1627,7 +1627,7 @@ static void mptcp_destroy(struct sock *sk)
static int mptcp_setsockopt_sol_socket(struct mptcp_sock *msk, int optname,
-                                      char __user *optval, unsigned int optlen)
+                                      sockptr_t optval, unsigned int optlen)
        struct sock *sk = (struct sock *)msk;
        struct socket *ssock;
@@ -1643,8 +1643,8 @@ static int mptcp_setsockopt_sol_socket(struct mptcp_sock 
*msk, int optname,
                        return -EINVAL;
- ret = sock_setsockopt(ssock, SOL_SOCKET, optname,
-                                     USER_SOCKPTR(optval), optlen);
+               ret = sock_setsockopt(ssock, SOL_SOCKET, optname, optval,
+                                     optlen);

A very small detail related to the modifications in MPTCP code, only if you have to send a v2 and if you don't mind: may you move "optlen" to the previous line like it was before your patch 7/24. Same below at the end of the function.

That would reduce the global diff in MPTCP files to function signatures only.

Tessares | Belgium | Hybrid Access Solutions

<Prev in Thread] Current Thread [Next in Thread>