0011-bundled-update-linux-io_uring-query.h-to-v7.0-rc3.patch (4734B)
1 From d87c3dbfff0f0cffa8acd227621779f2d5833300 Mon Sep 17 00:00:00 2001 2 From: "Dmitry V. Levin" <ldv@strace.io> 3 Date: Wed, 11 Mar 2026 08:00:00 +0000 4 Subject: [PATCH] bundled: update linux/io_uring/query.h to v7.0-rc3 5 6 * bundled/linux/include/uapi/linux/io_uring/query.h: Update to 7 headers_install'ed Linux kernel v7.0-rc3. 8 * src/io_uring.c (print_io_uring_query_zcrx): Follow the rename 9 of "__resv1" field of struct io_uring_query_zcrx to "features". 10 * tests/io_uring_register.c (test_IORING_REGISTER_QUERY): Update 11 expected output. 12 --- 13 .../linux/include/uapi/linux/io_uring/query.h | 6 +++++- 14 src/io_uring.c | 7 ++----- 15 tests/io_uring_register.c | 16 ++++++++-------- 16 3 files changed, 15 insertions(+), 14 deletions(-) 17 18 diff --git a/bundled/linux/include/uapi/linux/io_uring/query.h b/bundled/linux/include/uapi/linux/io_uring/query.h 19 index 2456e6c5e..95500759c 100644 20 --- a/bundled/linux/include/uapi/linux/io_uring/query.h 21 +++ b/bundled/linux/include/uapi/linux/io_uring/query.h 22 @@ -1,6 +1,9 @@ 23 /* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT */ 24 /* 25 * Header file for the io_uring query interface. 26 + * 27 + * Copyright (C) 2026 Pavel Begunkov <asml.silence@gmail.com> 28 + * Copyright (C) Meta Platforms, Inc. 29 */ 30 #ifndef LINUX_IO_URING_QUERY_H 31 #define LINUX_IO_URING_QUERY_H 32 @@ -50,7 +53,8 @@ struct io_uring_query_zcrx { 33 __u64 area_flags; 34 /* The number of supported ZCRX_CTRL_* opcodes */ 35 __u32 nr_ctrl_opcodes; 36 - __u32 __resv1; 37 + /* Bitmask of ZCRX_FEATURE_* indicating which features are available */ 38 + __u32 features; 39 /* The refill ring header size */ 40 __u32 rq_hdr_size; 41 /* The alignment for the header */ 42 diff --git a/src/io_uring.c b/src/io_uring.c 43 index 04de31651..d6eb63ffe 100644 44 --- a/src/io_uring.c 45 +++ b/src/io_uring.c 46 @@ -1538,15 +1538,12 @@ print_io_uring_query_zcrx(struct tcb *tcp, const kernel_ulong_t addr) 47 tprint_struct_next(); 48 PRINT_FIELD_U(zcrx, nr_ctrl_opcodes); 49 tprint_struct_next(); 50 + PRINT_FIELD_X(zcrx, features); 51 + tprint_struct_next(); 52 PRINT_FIELD_U(zcrx, rq_hdr_size); 53 tprint_struct_next(); 54 PRINT_FIELD_U(zcrx, rq_hdr_alignment); 55 56 - if (zcrx.__resv1) { 57 - tprint_struct_next(); 58 - PRINT_FIELD_X(zcrx, __resv1); 59 - } 60 - 61 if (zcrx.__resv2) { 62 tprint_struct_next(); 63 PRINT_FIELD_X(zcrx, __resv2); 64 diff --git a/tests/io_uring_register.c b/tests/io_uring_register.c 65 index 9952f0370..158c714a0 100644 66 --- a/tests/io_uring_register.c 67 +++ b/tests/io_uring_register.c 68 @@ -2373,8 +2373,8 @@ test_IORING_REGISTER_QUERY(int fd_null) 69 printf("io_uring_register(%u<%s>, " XLAT_FMT 70 ", {query_data=%p, query_op=" XLAT_FMT ", size=%u, result=0" 71 ", query_data={register_flags=" XLAT_FMT ", area_flags=" XLAT_FMT 72 - ", nr_ctrl_opcodes=%u, rq_hdr_size=%u, rq_hdr_alignment=%u}" 73 - ", next_entry=NULL}, 0) = %s\n", 74 + ", nr_ctrl_opcodes=%u, features=0, rq_hdr_size=%u" 75 + ", rq_hdr_alignment=%u}, next_entry=NULL}, 0) = %s\n", 76 fd_null, path_null, 77 XLAT_SEL(query_ops.val, query_ops.str), 78 zcrx_data, 79 @@ -2490,8 +2490,8 @@ test_IORING_REGISTER_QUERY(int fd_null) 80 ", sqe_flags=0, nr_query_opcodes=0}, next_entry=" 81 "{query_data=%p, query_op=" XLAT_FMT ", size=%u, result=0" 82 ", query_data={register_flags=0, area_flags=0" 83 - ", nr_ctrl_opcodes=%u, rq_hdr_size=0, rq_hdr_alignment=0}" 84 - ", next_entry=NULL}}, 0) = %s\n", 85 + ", nr_ctrl_opcodes=%u, features=0, rq_hdr_size=0" 86 + ", rq_hdr_alignment=0}, next_entry=NULL}}, 0) = %s\n", 87 fd_null, path_null, 88 XLAT_SEL(query_ops.val, query_ops.str), 89 opcode_data2, 90 @@ -2570,22 +2570,22 @@ test_IORING_REGISTER_QUERY(int fd_null) 91 hdr->result = 0; 92 93 memset(zcrx_data, 0, sizeof(*zcrx_data)); 94 - zcrx_data->__resv1 = 0xdeadbeef; 95 + zcrx_data->features = 0xdeadbeef; 96 zcrx_data->__resv2 = 0xcafebabe12345678ULL; 97 98 sys_io_uring_register(fd_null, query_ops.val, hdr, 0); 99 printf("io_uring_register(%u<%s>, " XLAT_FMT 100 ", {query_data=%p, query_op=" XLAT_FMT ", size=%u, result=0" 101 ", query_data={register_flags=0, area_flags=0" 102 - ", nr_ctrl_opcodes=0, rq_hdr_size=0" 103 - ", rq_hdr_alignment=0, __resv1=%#x, __resv2=%#llx}" 104 + ", nr_ctrl_opcodes=0, features=%#x, rq_hdr_size=0" 105 + ", rq_hdr_alignment=0, __resv2=%#llx}" 106 ", next_entry=NULL}, 0) = %s\n", 107 fd_null, path_null, 108 XLAT_SEL(query_ops.val, query_ops.str), 109 zcrx_data, 110 XLAT_ARGS(IO_URING_QUERY_ZCRX), 111 (unsigned int) sizeof(*zcrx_data), 112 - zcrx_data->__resv1, 113 + zcrx_data->features, 114 (unsigned long long) zcrx_data->__resv2, 115 errstr); 116 117 -- 118 2.49.0 119