linux/io_uring
Asbjørn Sloth Tønnesen 600b665b90 io_uring/cmd_net: fix too strict requirement on ioctl
Attempting SOCKET_URING_OP_SETSOCKOPT on an AF_NETLINK socket resulted
in an -EOPNOTSUPP, as AF_NETLINK doesn't have an ioctl in its struct
proto, but only in struct proto_ops.

Prior to the blamed commit, io_uring_cmd_sock() only had two cmd_op
operations, both requiring ioctl, thus the check was warranted.

Since then, 4 new cmd_op operations have been added, none of which
depend on ioctl. This patch moves the ioctl check, so it only applies
to the original operations.

AFAICT, the ioctl requirement was unintentional, and it wasn't
visible in the blamed patch within 3 lines of context.

Cc: stable@vger.kernel.org
Fixes: a5d2f99aff ("io_uring/cmd: Introduce SOCKET_URING_OP_GETSOCKOPT")
Signed-off-by: Asbjørn Sloth Tønnesen <ast@fiberby.net>
Reviewed-by: Gabriel Krisman Bertazi <krisman@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2026-02-16 08:08:01 -07:00
..
advise.c io_uring: finish IOU_OK -> IOU_COMPLETE transition 2025-05-21 08:41:16 -06:00
advise.h
alloc_cache.c io_uring: add alloc_cache.c 2025-01-28 15:10:40 -07:00
alloc_cache.h io_uring: Add SPDX id lines to remaining source files 2026-02-04 07:23:45 -07:00
bpf_filter.c io_uring: allow registration of per-task restrictions 2026-02-06 07:29:19 -07:00
bpf_filter.h io_uring: allow registration of per-task restrictions 2026-02-06 07:29:19 -07:00
cancel.c for-7.0/io_uring-20260206 2026-02-09 17:22:00 -08:00
cancel.h io_uring/cancel: move cancelation code from io_uring.c to cancel.c 2025-11-04 09:32:09 -07:00
cmd_net.c io_uring/cmd_net: fix too strict requirement on ioctl 2026-02-16 08:08:01 -07:00
epoll.c io_uring: finish IOU_OK -> IOU_COMPLETE transition 2025-05-21 08:41:16 -06:00
epoll.h io_uring/epoll: add support for IORING_OP_EPOLL_WAIT 2025-02-20 07:59:56 -07:00
eventfd.c io_uring/eventfd: open code io_eventfd_grab() 2025-04-24 08:33:54 -06:00
eventfd.h io_uring: Add SPDX id lines to remaining source files 2026-02-04 07:23:45 -07:00
fdinfo.c io_uring/fdinfo: be a bit nicer when looping a lot of SQEs/CQEs 2026-02-03 10:58:32 -07:00
fdinfo.h
filetable.c io_uring/filetable: clamp alloc_hint to the configured alloc range 2026-02-11 15:20:44 -07:00
filetable.h io_uring: Trim out unused includes 2026-01-05 17:08:20 -07:00
fs.c non-consuming variants of do_{unlinkat,rmdir}() 2026-01-16 12:51:50 -05:00
fs.h
futex.c io_uring/futex: use GFP_KERNEL_ACCOUNT for futex data allocation 2026-01-25 10:07:09 -07:00
futex.h io_uring: move cancelations to be io_uring_task based 2024-11-06 13:55:38 -07:00
io-wq.c for-7.0/io_uring-20260206 2026-02-09 17:22:00 -08:00
io-wq.h io_uring: Add SPDX id lines to remaining source files 2026-02-04 07:23:45 -07:00
io_uring.c io_uring: delay sqarray static branch disablement 2026-02-15 15:12:54 -07:00
io_uring.h io_uring-bpf-restrictions.4-20260206 2026-02-09 17:31:17 -08:00
kbuf.c io_uring/kbuf: fix memory leak if io_buffer_add_list fails 2026-02-05 11:13:16 -07:00
kbuf.h io_uring/kbuf: remove obsolete buf_nr_pages and update comments 2025-11-20 13:23:05 -07:00
Kconfig io_uring: add support for BPF filtering for opcode restrictions 2026-01-27 11:09:57 -07:00
Makefile io_uring: add support for BPF filtering for opcode restrictions 2026-01-27 11:09:57 -07:00
memmap.c for-7.0/io_uring-20260206 2026-02-09 17:22:00 -08:00
memmap.h io_uring: Add SPDX id lines to remaining source files 2026-02-04 07:23:45 -07:00
mock_file.c io_uring: Add SPDX id lines to remaining source files 2026-02-04 07:23:45 -07:00
msg_ring.c io_uring/msg_ring: drop unnecessary submitter_task checks 2026-01-12 11:21:38 -07:00
msg_ring.h io_uring/msg_ring: Drop custom destructor 2024-12-27 10:08:21 -07:00
napi.c net: use napi_id_valid helper 2025-02-17 16:43:04 -08:00
napi.h io_uring/napi: add static napi tracking strategy 2024-11-06 13:55:38 -07:00
net.c io_uring-bpf-restrictions.4-20260206 2026-02-09 17:31:17 -08:00
net.h io_uring/net: allow filtering on IORING_OP_SOCKET data 2026-01-27 11:10:46 -07:00
nop.c io_uring/nop: add support for IORING_SETUP_CQE_MIXED 2025-08-27 11:24:15 -06:00
nop.h
notif.c io_uring: Add SPDX id lines to remaining source files 2026-02-04 07:23:45 -07:00
notif.h io_uring/notif: implement notification stacking 2024-04-22 19:31:18 -06:00
opdef.c io_uring: add support for IORING_SETUP_SQE_MIXED 2025-10-22 07:34:57 -06:00
opdef.h io_uring: add support for IORING_SETUP_SQE_MIXED 2025-10-22 07:34:57 -06:00
openclose.c io_uring/openclose: fix io_pipe_fixed() slot tracking for specific slots 2026-02-11 20:31:21 -07:00
openclose.h io_uring/bpf_filter: allow filtering on contents of struct open_how 2026-01-27 11:10:46 -07:00
poll.c io_uring/poll: unify poll waitqueue entry and list removal 2025-12-05 10:23:28 -07:00
poll.h io_uring: add wrapper type for io_req_tw_func_t arg 2025-11-03 08:31:26 -07:00
query.c io_uring/query: return support for custom rx page size 2026-02-15 14:55:37 -07:00
query.h io_uring/query: drop unused io_handle_query_entry() ctx arg 2025-11-26 09:37:10 -07:00
refs.h io_uring: Add SPDX id lines to remaining source files 2026-02-04 07:23:45 -07:00
register.c io_uring-bpf-restrictions.4-20260206 2026-02-09 17:31:17 -08:00
register.h io_uring: temporarily disable registered waits 2024-11-15 09:58:34 -07:00
rsrc.c io_uring/rsrc: replace reg buffer bit field with flags 2026-02-10 05:26:15 -07:00
rsrc.h io_uring/rsrc: replace reg buffer bit field with flags 2026-02-10 05:26:15 -07:00
rw.c io_uring/rsrc: replace reg buffer bit field with flags 2026-02-10 05:26:15 -07:00
rw.h io_uring: add wrapper type for io_req_tw_func_t arg 2025-11-03 08:31:26 -07:00
slist.h io_uring: Add SPDX id lines to remaining source files 2026-02-04 07:23:45 -07:00
splice.c io_uring: don't include filetable.h in io_uring.h 2025-09-08 13:20:46 -06:00
splice.h io_uring/splice: open code 2nd direct file assignment 2024-10-29 13:43:28 -06:00
sqpoll.c io_uring: IOPOLL polling improvements 2025-12-28 15:54:45 -07:00
sqpoll.h io_uring/sqpoll: switch away from getrusage() for CPU accounting 2025-10-22 10:51:20 -06:00
statx.c allow incomplete imports of filenames 2026-01-13 15:18:07 -05:00
statx.h
sync.c io_uring/sync: validate passed in offset 2026-01-21 11:50:59 -07:00
sync.h
tctx.c io_uring/tctx: avoid modifying loop variable in io_ring_add_registered_file 2026-02-09 20:12:46 -07:00
tctx.h io_uring: simplify __io_uring_add_tctx_node 2022-10-07 12:25:30 -06:00
timeout.c io_uring/timeout: annotate data race in io_flush_timeouts() 2026-01-20 09:54:17 -07:00
timeout.h io_uring/timeout: don't export link t-out disarm helper 2025-05-06 10:11:23 -06:00
truncate.c io_uring: finish IOU_OK -> IOU_COMPLETE transition 2025-05-21 08:41:16 -06:00
truncate.h io_uring: add support for ftruncate 2024-02-09 09:04:39 -07:00
tw.c io_uring: split out CQ waiting code into wait.c 2026-01-22 09:21:16 -07:00
tw.h io_uring: split out CQ waiting code into wait.c 2026-01-22 09:21:16 -07:00
uring_cmd.c io_uring/uring_cmd: explicitly disallow cancelations for IOPOLL 2026-01-14 22:04:11 -07:00
uring_cmd.h io_uring/cmd: remove struct io_uring_cmd_data 2025-07-18 12:34:56 -06:00
wait.c io_uring: split out CQ waiting code into wait.c 2026-01-22 09:21:16 -07:00
wait.h io_uring: split out CQ waiting code into wait.c 2026-01-22 09:21:16 -07:00
waitid.c io_uring/waitid: fix KCSAN warning on io_waitid->head 2026-01-19 19:55:30 -07:00
waitid.h io_uring: move cancelations to be io_uring_task based 2024-11-06 13:55:38 -07:00
xattr.c filename_...xattr(): don't consume filename reference 2026-01-16 12:52:03 -05:00
xattr.h
zcrx.c io_uring/zcrx: check unsupported flags on import 2026-02-15 14:55:29 -07:00
zcrx.h io_uring/zcrx: count zcrx users 2025-11-13 11:19:37 -07:00