]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Merge branch 'net-move-getsockopt-away-from-__user-buffers'
authorJakub Kicinski <kuba@kernel.org>
Mon, 13 Apr 2026 21:56:33 +0000 (14:56 -0700)
committerJakub Kicinski <kuba@kernel.org>
Mon, 13 Apr 2026 21:56:33 +0000 (14:56 -0700)
Breno Leitao says:

====================
net: move .getsockopt away from __user buffers

Currently, the .getsockopt callback requires __user pointers:

  int (*getsockopt)(struct socket *sock, int level,
                    int optname, char __user *optval, int __user *optlen);

This prevents kernel callers (io_uring, BPF) from using getsockopt on
levels other than SOL_SOCKET, since they pass kernel pointers.

Following Linus' suggestion [0], this series introduces sockopt_t, a
type-safe wrapper around iov_iter, and a getsockopt_iter callback that
works with both user and kernel buffers. AF_PACKET and CAN raw are
converted as initial users, with selftests covering the trickiest
conversion patterns.

[0] https://lore.kernel.org/all/CAHk-=whmzrO-BMU=uSVXbuoLi-3tJsO=0kHj1BCPBE3F2kVhTA@mail.gmail.com/
====================

Link: https://patch.msgid.link/20260408-getsockopt-v3-0-061bb9cb355d@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

Trivial merge