History

Merge tag 'io_uring-7.0-20260216' of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux

Pull more io_uring updates from Jens Axboe: "This is a mix of cleanups and fixes. No major fixes in here, just a bunch of little fixes. Some of them marked for stable as it fixes behavioral issues - Fix an issue with SOCKET_URING_OP_SETSOCKOPT for netlink sockets, due to a too restrictive check on it having an ioctl handler - Remove a redundant SQPOLL check in ring creation - Kill dead accounting for zero-copy send, which doesn't use ->buf or ->len post the initial setup - Fix missing clamp of the allocation hint, which could cause allocations to fall outside of the range the application asked for. Still within the allowed limits. - Fix for IORING_OP_PIPE's handling of direct descriptors - Tweak to the API for the newly added BPF filters, making them more future proof in terms of how applications deal with them - A few fixes for zcrx, fixing a few error handling conditions - Fix for zcrx request flag checking - Add support for querying the zcrx page size - Improve the NO_SQARRAY static branch inc/dec, avoiding busy conditions causing too much traffic - Various little cleanups" * tag 'io_uring-7.0-20260216' of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux: io_uring/bpf_filter: pass in expected filter payload size io_uring/bpf_filter: move filter size and populate helper into struct io_uring/cancel: de-unionize file and user_data in struct io_cancel_data io_uring/rsrc: improve regbuf iov validation io_uring: remove unneeded io_send_zc accounting io_uring/cmd_net: fix too strict requirement on ioctl io_uring: delay sqarray static branch disablement io_uring/query: add query.h copyright notice io_uring/query: return support for custom rx page size io_uring/zcrx: check unsupported flags on import io_uring/zcrx: fix post open error handling io_uring/zcrx: fix sgtable leak on mapping failures io_uring: use the right type for creds iteration io_uring/openclose: fix io_pipe_fixed() slot tracking for specific slots io_uring/filetable: clamp alloc_hint to the configured alloc range io_uring/rsrc: replace reg buffer bit field with flags io_uring/zcrx: improve types for size calculation io_uring/tctx: avoid modifying loop variable in io_ring_add_registered_file io_uring: simplify IORING_SETUP_DEFER_TASKRUN && !SQPOLL check

Linus Torvalds committed 8 months ago

Commit 7b751b02 parents 9702969 be3573118 files · +149 −90Browse files

Showing the changes to include/uapi (3 of 18 files). Show all

Unified · Split

3 files
  1. include/uapi/linux/io_uring.h +8 −0
  2. include/uapi/linux/io_uring/bpf_filter.h +7 −1
  3. include/uapi/linux/io_uring/query.h +5 −1
include/uapi/linux/io_uring.h+8−0
@@ -1090,6 +1090,14 @@ enum zcrx_reg_flags { · 1089 unmodified lines
1090 ZCRX_REG_IMPORT = 1,1090 ZCRX_REG_IMPORT = 1,
1091};1091};
1092 1092
1093enum zcrx_features {
1094 /*
1095 * The user can ask for the desired rx page size by passing the
1096 * value in struct io_uring_zcrx_ifq_reg::rx_buf_len.
1097 */
1098 ZCRX_FEATURE_RX_PAGE_SIZE = 1 << 0,
1099};
1100
1093/*1101/*
1094 * Argument for IORING_REGISTER_ZCRX_IFQ1102 * Argument for IORING_REGISTER_ZCRX_IFQ
1095 */1103 */
include/uapi/linux/io_uring/bpf_filter.h+7−1
@@ -35,13 +35,19 @@ enum { · 34 unmodified lines
35 * If set, any currently unset opcode will have a deny filter attached35 * If set, any currently unset opcode will have a deny filter attached
36 */36 */
37 IO_URING_BPF_FILTER_DENY_REST = 1,37 IO_URING_BPF_FILTER_DENY_REST = 1,
38 /*
39 * If set, if kernel and application don't agree on pdu_size for
40 * the given opcode, fail the registration of the filter.
41 */
42 IO_URING_BPF_FILTER_SZ_STRICT = 2,
38};43};
39 44
40struct io_uring_bpf_filter {45struct io_uring_bpf_filter {
41 __u32 opcode; /* io_uring opcode to filter */46 __u32 opcode; /* io_uring opcode to filter */
42 __u32 flags;47 __u32 flags;
43 __u32 filter_len; /* number of BPF instructions */48 __u32 filter_len; /* number of BPF instructions */
44 __u32 resv;49 __u8 pdu_size; /* expected pdu size for opcode */
50 __u8 resv[3];
45 __u64 filter_ptr; /* pointer to BPF filter */51 __u64 filter_ptr; /* pointer to BPF filter */
46 __u64 resv2[5];52 __u64 resv2[5];
47};53};
include/uapi/linux/io_uring/query.h+5−1
@@ -1,6 +1,9 @@
1/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT */1/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT */
2/*2/*
3 * Header file for the io_uring query interface.3 * Header file for the io_uring query interface.
4 *
5 * Copyright (C) 2026 Pavel Begunkov <asml.silence@gmail.com>
6 * Copyright (C) Meta Platforms, Inc.
4 */7 */
5#ifndef LINUX_IO_URING_QUERY_H8#ifndef LINUX_IO_URING_QUERY_H
6#define LINUX_IO_URING_QUERY_H9#define LINUX_IO_URING_QUERY_H
@@ -50,7 +53,8 @@ struct io_uring_query_zcrx { · 43 unmodified lines
50 __u64 area_flags;53 __u64 area_flags;
51 /* The number of supported ZCRX_CTRL_* opcodes */54 /* The number of supported ZCRX_CTRL_* opcodes */
52 __u32 nr_ctrl_opcodes;55 __u32 nr_ctrl_opcodes;
53 __u32 __resv1;56 /* Bitmask of ZCRX_FEATURE_* indicating which features are available */
57 __u32 features;
54 /* The refill ring header size */58 /* The refill ring header size */
55 __u32 rq_hdr_size;59 __u32 rq_hdr_size;
56 /* The alignment for the header */60 /* The alignment for the header */