OSDN Git Service

io_uring: replace zero-length array with flexible-array member
authorGustavo A. R. Silva <gustavoars@kernel.org>
Tue, 28 Jun 2022 19:33:20 +0000 (21:33 +0200)
committerJens Axboe <axboe@kernel.dk>
Mon, 25 Jul 2022 00:39:16 +0000 (18:39 -0600)
There is a regular need in the kernel to provide a way to declare
having a dynamically sized set of trailing elements in a structure.
Kernel code should always use “flexible array members”[1] for these
cases. The older style of one-element or zero-length arrays should
no longer be used[2].

[1] https://en.wikipedia.org/wiki/Flexible_array_member
[2] https://www.kernel.org/doc/html/v5.16/process/deprecated.html#zero-length-and-one-element-arrays

Link: https://github.com/KSPP/linux/issues/78
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/uapi/linux/io_uring.h

index 094f706..8fe0275 100644 (file)
@@ -495,7 +495,7 @@ struct io_uring_probe {
        __u8 ops_len;   /* length of ops[] array below */
        __u16 resv;
        __u32 resv2[3];
-       struct io_uring_probe_op ops[0];
+       struct io_uring_probe_op ops[];
 };
 
 struct io_uring_restriction {