Re: [MPTCP] [PATCH 24/24] net: pass a sockptr_t into ->setsockopt
Matthieu Baerts <[email protected]>
| Newsgroups | org.kernel.vger.dccp,dev.linux.lists.bridge,dev.linux.lists.mptcp,org.kernel.vger.bpf,org.kernel.vger.linux-bluetooth,org.kernel.vger.linux-can,org.kernel.vger.linux-crypto,org.kernel.vger.linux-hams,org.kernel.vger.linux-kernel,org.kernel.vger.linux-s390,org.kernel.vger.linux-sctp,org.kernel.vger.linux-wpan,org.kernel.vger.linux-x25,org.kernel.vger.lvs-devel,org.kernel.vger.netdev,org.kernel.vger.netfilter-devel |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> > --- ... > 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. Cheers, Matt -- Tessares | Belgium | Hybrid Access Solutions www.tessares.net