On 9/6/21 6:03 PM, Hao Xu wrote: > 在 2021/9/6 下午11:22, Pavel Begunkov 写道: >> On 9/6/21 4:12 PM, Hao Xu wrote: >>> Some check should be large than not equal or large than. >>> >>> Signed-off-by: Hao Xu <haoxu@xxxxxxxxxxxxxxxxx> >>> --- >>> fs/io_uring.c | 6 +++--- >>> 1 file changed, 3 insertions(+), 3 deletions(-) >>> >>> diff --git a/fs/io_uring.c b/fs/io_uring.c >>> index 2bde732a1183..3a833037af43 100644 >>> --- a/fs/io_uring.c >>> +++ b/fs/io_uring.c >>> @@ -10637,13 +10637,13 @@ static int __init io_uring_init(void) >>> sizeof(struct io_uring_rsrc_update2)); >>> /* ->buf_index is u16 */ >>> - BUILD_BUG_ON(IORING_MAX_REG_BUFFERS >= (1u << 16)); >>> + BUILD_BUG_ON(IORING_MAX_REG_BUFFERS > (1u << 16)); >>> /* should fit into one byte */ >>> - BUILD_BUG_ON(SQE_VALID_FLAGS >= (1 << 8)); >>> + BUILD_BUG_ON(SQE_VALID_FLAGS > (1 << 8)); >> >> 0xff = 255 is the largest number fitting in u8, >> 1<<8 = 256. >> >> let SQE_VALID_FLAGS = 256, >> (256 > (1<<8)) == (256 > 256) == false, even though it can't >> be represented by u8. > Isn't SQE_VALID_FLAGS = 256 a valid value for it? SQE_VALID_FLAGS is a "bitwise OR" combination of valid flags, so can't be go beyond 0xff >> >> >>> BUILD_BUG_ON(ARRAY_SIZE(io_op_defs) != IORING_OP_LAST); >>> - BUILD_BUG_ON(__REQ_F_LAST_BIT >= 8 * sizeof(int)); >>> + BUILD_BUG_ON(__REQ_F_LAST_BIT > 8 * sizeof(int)); >>> req_cachep = KMEM_CACHE(io_kiocb, SLAB_HWCACHE_ALIGN | SLAB_PANIC | >>> SLAB_ACCOUNT); >>> >> > -- Pavel Begunkov