Re: [PATCH net-next v2 1/5] mctp: convert to getsockopt_iter
Adam Young <[email protected]> Thu, 7 May 2026 16:10:36 -0400
| Newsgroups | org.kernel.vger.linux-x25,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
Why is this 1/5 and where are the other 4? On 5/7/26 06:57, Breno Leitao wrote: > Convert MCTP socket's getsockopt implementation to use the new > getsockopt_iter callback with sockopt_t. > > Key changes: > - Replace (char __user *optval, int __user *optlen) with sockopt_t *opt > - Use opt->optlen for buffer length (input) > - Use copy_to_iter() instead of copy_to_user() > - Add linux/uio.h for copy_to_iter() > > Signed-off-by: Breno Leitao <[email protected]> > --- > net/mctp/af_mctp.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/net/mctp/af_mctp.c b/net/mctp/af_mctp.c > index 209a963112e3a..8af5e2b3c8d12 100644 > --- a/net/mctp/af_mctp.c > +++ b/net/mctp/af_mctp.c > @@ -12,6 +12,7 @@ > #include <linux/mctp.h> > #include <linux/module.h> > #include <linux/socket.h> > +#include <linux/uio.h> > > #include <net/mctp.h> > #include <net/mctpdevice.h> > @@ -405,7 +406,7 @@ static int mctp_setsockopt(struct socket *sock, int level, int optname, > } > > static int mctp_getsockopt(struct socket *sock, int level, int optname, > - char __user *optval, int __user *optlen) > + sockopt_t *opt) > { > struct mctp_sock *msk = container_of(sock->sk, struct mctp_sock, sk); > int len, val; > @@ -413,14 +414,13 @@ static int mctp_getsockopt(struct socket *sock, int level, int optname, > if (level != SOL_MCTP) > return -EINVAL; > > - if (get_user(len, optlen)) > - return -EFAULT; > + len = opt->optlen; > > if (optname == MCTP_OPT_ADDR_EXT) { > if (len != sizeof(int)) > return -EINVAL; > val = !!msk->addr_ext; > - if (copy_to_user(optval, &val, len)) > + if (copy_to_iter(&val, len, &opt->iter_out) != len) > return -EFAULT; > return 0; > } > @@ -639,7 +639,7 @@ static const struct proto_ops mctp_dgram_ops = { > .listen = sock_no_listen, > .shutdown = sock_no_shutdown, > .setsockopt = mctp_setsockopt, > - .getsockopt = mctp_getsockopt, > + .getsockopt_iter = mctp_getsockopt, > .sendmsg = mctp_sendmsg, > .recvmsg = mctp_recvmsg, > .mmap = sock_no_mmap, >