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,
>