diff options
author | Jens Axboe <axboe@kernel.dk> | 2020-03-03 15:28:17 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2020-03-10 09:12:56 -0600 |
commit | 84557871f2ff332edd445d70349c8724c313c683 (patch) | |
tree | 2a3c3c50139c3e2979bcf8fb83c42f6c07470933 /fs | |
parent | 067524e914cb23e20d59480b318fe2625eaee7c8 (diff) | |
download | linux-stable-84557871f2ff332edd445d70349c8724c313c683.tar.gz linux-stable-84557871f2ff332edd445d70349c8724c313c683.tar.bz2 linux-stable-84557871f2ff332edd445d70349c8724c313c683.zip |
io_uring: add end-of-bits marker and build time verify it
Not easy to tell if we're going over the size of bits we can shove
in req->flags, so add an end-of-bits marker and a BUILD_BUG_ON()
check for it.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/io_uring.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/io_uring.c b/fs/io_uring.c index f131105fa12a..4bbad2ed4ae3 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -511,6 +511,9 @@ enum { REQ_F_OVERFLOW_BIT, REQ_F_POLLED_BIT, REQ_F_BUFFER_SELECTED_BIT, + + /* not a real bit, just to check we're not overflowing the space */ + __REQ_F_LAST_BIT, }; enum { @@ -7998,6 +8001,7 @@ static int __init io_uring_init(void) BUILD_BUG_SQE_ELEM(44, __s32, splice_fd_in); BUILD_BUG_ON(ARRAY_SIZE(io_op_defs) != IORING_OP_LAST); + BUILD_BUG_ON(__REQ_F_LAST_BIT >= 8 * sizeof(int)); req_cachep = KMEM_CACHE(io_kiocb, SLAB_HWCACHE_ALIGN | SLAB_PANIC); return 0; }; |