Subject: Re: [PATCH net-next v3 0/4] net: move .getsockopt away from __user buffers

From: Breno Leitao <[email-masked]>
Date: Fri, 10 Apr 2026 05:52:54 -0700

Hello Stanislav,

On Wed, Apr 08, 2026 at 10:02:36AM -0700, Stanislav Fomichev wrote:
> On 04/08, Breno Leitao wrote:
>
> LGTM! Not sure what's your plan for the selftest? You wanna keep it
> outside or maybe repost v4 with it?

I'd be glad to include a selftest. I've already developed one covering both
protocols in this series and can respin with it if you'd like.

Test available at:
https://github.com/leitao/linux/commit/2d9311947061f1baa43858f597dd6c54d7ccc5d2

> Acked-by: Stanislav Fomichev <[email-masked]>

Thanks for the review and guidance.

> I'm also not sure your unconditional 'copy-optlen-back' will work for every
> proto, but I think we can put something into sockopt_t to make it avoid
> the copy if needed in the future.

Good point. I'd prefer not to over-engineer this now, but keep it
straightforward to add later if needed. This could be easily achieved with
something like:

  typedef struct sockopt {
        struct iov_iter iter_in;
        struct iov_iter iter_out;
        int optlen;
+       bool optlen_dirty;      /* set by callback when optlen should be written back */
  } sockopt_t;

Wrapper becomes:

  if (opt.optlen_dirty &&
      copy_to_sockptr(optlen, &opt.optlen, sizeof(int)))
        return -EFAULT;

and the protocol callback would need to set

   opt->optlen_dirty = true;

I don't think this is needed yet, and if we do need it, it would be better
to review and commit them together, making the rationale clearer for
future developers/LLM agents.

What do you think?

Thanks,
--breno