2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
linux/arch/parisc
Kuniyuki Iwashima df30285b36 af_unix: Introduce SO_INQ.
We have an application that uses almost the same code for TCP and
AF_UNIX (SOCK_STREAM).

TCP can use TCP_INQ, but AF_UNIX doesn't have it and requires an
extra syscall, ioctl(SIOCINQ) or getsockopt(SO_MEMINFO) as an
alternative.

Let's introduce the generic version of TCP_INQ.

If SO_INQ is enabled, recvmsg() will put a cmsg of SCM_INQ that
contains the exact value of ioctl(SIOCINQ).  The cmsg is also
included when msg->msg_get_inq is non-zero to make sockets
io_uring-friendly.

Note that SOCK_CUSTOM_SOCKOPT is flagged only for SOCK_STREAM to
override setsockopt() for SOL_SOCKET.

By having the flag in struct unix_sock, instead of struct sock, we
can later add SO_INQ support for TCP and reuse tcp_sk(sk)->recvmsg_inq.

Note also that supporting custom getsockopt() for SOL_SOCKET will need
preparation for other SOCK_CUSTOM_SOCKOPT users (UDP, vsock, MPTCP).

Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20250702223606.1054680-7-kuniyu@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-07-08 18:05:25 -07:00
..
boot parisc: fix building with gcc-15 2025-05-20 18:01:02 +02:00
configs crypto: Kconfig - make CRYPTO_MANAGER a hidden symbol 2025-05-12 13:34:03 +08:00
include af_unix: Introduce SO_INQ. 2025-07-08 18:05:25 -07:00
kernel Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
lib parisc: Remove memcpy_fromio 2025-02-03 19:27:00 +01:00
math-emu parisc: Fix double SIGFPE crash 2025-05-04 17:30:03 +02:00
mm arch, mm: make releasing of memory to page allocator more explicit 2025-03-17 22:06:53 -07:00
net parisc: fix unaligned accesses in BPF 2024-07-29 16:19:07 +02:00
video arch: Rename fbdev header and source files 2024-05-03 17:07:50 +02:00
defpalo.conf
install.sh kbuild: Abort make on install failures 2024-07-20 13:34:54 +09:00
Kbuild parisc: Wire up eBPF JIT compiler 2023-08-22 10:24:47 +02:00
Kconfig parisc: Temporarily disable jump label support 2025-01-20 21:05:32 +01:00
Kconfig.debug parisc: Use page table locks only if DEBUG_KERNEL is enabled 2023-08-20 20:23:46 +02:00
Makefile arch: Select fbdev helpers with CONFIG_VIDEO 2024-05-03 17:07:50 +02:00