[RFC PATCH 4/4] io_uring: let io_uring_cmd_getsockopt() allow level other than SOL_SOCKET

Stefan Metzmacher <[email protected]> Mon, 31 Mar 2025 22:10:56 +0200
Newsgroups gmane.linux.drivers.rdma,gmane.linux.network,gmane.linux.kernel,gmane.linux.hams,gmane.linux.bluez.kernel,gmane.linux.can,gmane.network.tipc.general,gmane.linux.x25,gmane.linux.kernel.bpf,gmane.linux.isdn.i4l.user,gmane.linux.kernel.io-uring
Message-ID <330de91a48996e6dc5cdc844b74fb17fb933326c.1743449872.git.metze@samba.org>
do_sock_getsockopt() works with a kernel pointer for optlen now.

Link: https://lore.kernel.org/io-uring/86b1dce5-4bb4-4a0b-9cff-e72f488bf57d-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org/T/#t
Cc: Jens Axboe <axboe-tSWWG44O7X1aa/[email protected]>
Cc: Pavel Begunkov <[email protected]>
Cc: Breno Leitao <[email protected]>
Cc: Linus Torvalds <torvalds-de/[email protected]>
Cc: Jakub Kicinski <[email protected]>
Cc: Christoph Hellwig <[email protected]>
Cc: Karsten Keil <[email protected]>
Cc: Ayush Sawal <[email protected]>
Cc: Andrew Lunn <[email protected]>
Cc: "David S. Miller" <davem-fT/PcQaiUtIeIZ0/[email protected]>
Cc: Eric Dumazet <[email protected]>
Cc: Paolo Abeni <[email protected]>
Cc: Simon Horman <[email protected]>
Cc: Kuniyuki Iwashima <[email protected]>
Cc: Willem de Bruijn <[email protected]>
Cc: David Ahern <[email protected]>
Cc: Marcelo Ricardo Leitner <[email protected]>
Cc: Xin Long <[email protected]>
Cc: Neal Cardwell <[email protected]>
Cc: Joerg Reuter <[email protected]>
Cc: Marcel Holtmann <[email protected]>
Cc: Johan Hedberg <[email protected]>
Cc: Luiz Augusto von Dentz <[email protected]>
Cc: Oliver Hartkopp <[email protected]>
Cc: Marc Kleine-Budde <[email protected]>
Cc: Robin van der Gracht <robin-/Q/[email protected]>
Cc: Oleksij Rempel <[email protected]>
Cc: [email protected]
Cc: Alexander Aring <[email protected]>
Cc: Stefan Schmidt <[email protected]>
Cc: Miquel Raynal <[email protected]>
Cc: Alexandra Winter <[email protected]>
Cc: Thorsten Winkler <[email protected]>
Cc: James Chapman <[email protected]>
Cc: Jeremy Kerr <[email protected]>
Cc: Matt Johnston <[email protected]>
Cc: Matthieu Baerts <[email protected]>
Cc: Mat Martineau <[email protected]>
Cc: Geliang Tang <[email protected]>
Cc: Krzysztof Kozlowski <[email protected]>
Cc: Remi Denis-Courmont <[email protected]>
Cc: Allison Henderson <[email protected]>
Cc: David Howells <[email protected]>
Cc: Marc Dionne <marc.dionne-hRzEac23uH1Wk0Htik3J/[email protected]>
Cc: Wenjia Zhang <[email protected]>
Cc: Jan Karcher <[email protected]>
Cc: "D. Wythe" <alibuda-KPsoFbNs7GizrGE5bRqYAgC/[email protected]>
Cc: Tony Lu <tonylu-KPsoFbNs7GizrGE5bRqYAgC/[email protected]>
Cc: Wen Gu <guwen-KPsoFbNs7GizrGE5bRqYAgC/[email protected]>
Cc: Jon Maloy <[email protected]>
Cc: Boris Pismenny <[email protected]>
Cc: John Fastabend <[email protected]>
Cc: Stefano Garzarella <[email protected]>
Cc: Martin Schiller <[email protected]>
Cc: "Björn Töpel" <[email protected]>
Cc: Magnus Karlsson <[email protected]>
Cc: Maciej Fijalkowski <[email protected]>
Cc: Jonathan Lemon <[email protected]>
Cc: Alexei Starovoitov <[email protected]>
Cc: Daniel Borkmann <[email protected]>
Cc: Jesper Dangaard Brouer <[email protected]>
CC: Stefan Metzmacher <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: mptcp-cunTk1MwBs/[email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: tipc-discussion-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Cc: virtualization-cunTk1MwBs/[email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Stefan Metzmacher <[email protected]>
---
 io_uring/uring_cmd.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/io_uring/uring_cmd.c b/io_uring/uring_cmd.c
index f2cfc371f3d0..8b0cc919a60c 100644
--- a/io_uring/uring_cmd.c
+++ b/io_uring/uring_cmd.c
@@ -312,9 +312,6 @@ static inline int io_uring_cmd_getsockopt(struct socket *sock,
 	void __user *optval;
 
 	level = READ_ONCE(cmd->sqe->level);
-	if (level != SOL_SOCKET)
-		return -EOPNOTSUPP;
-
 	optval = u64_to_user_ptr(READ_ONCE(cmd->sqe->optval));
 	optname = READ_ONCE(cmd->sqe->optname);
 	optlen = READ_ONCE(cmd->sqe->optlen);
-- 
2.34.1