]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
io_uring/rw: cast rw->flags assignment to rwf_t
authorJens Axboe <axboe@kernel.dk>
Mon, 7 Jul 2025 22:46:30 +0000 (16:46 -0600)
committerJens Axboe <axboe@kernel.dk>
Mon, 7 Jul 2025 22:46:30 +0000 (16:46 -0600)
kernel test robot reports that a recent change of the sqe->rw_flags
field throws a sparse warning on 32-bit archs:

>> io_uring/rw.c:291:19: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __kernel_rwf_t [usertype] flags @@     got unsigned int @@
   io_uring/rw.c:291:19: sparse:     expected restricted __kernel_rwf_t [usertype] flags
   io_uring/rw.c:291:19: sparse:     got unsigned int

Force cast it to rwf_t to silence that new sparse warning.

Fixes: cf73d9970ea4 ("io_uring: don't use int for ABI")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202507032211.PwSNPNSP-lkp@intel.com/
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/rw.c

index 710d8cd53ebb74ee4e8cbde726bcf49f59f30d36..52a5b950b2e5e923bc629ca8724610a7cb559762 100644 (file)
@@ -288,7 +288,7 @@ static int __io_prep_rw(struct io_kiocb *req, const struct io_uring_sqe *sqe,
 
        rw->addr = READ_ONCE(sqe->addr);
        rw->len = READ_ONCE(sqe->len);
-       rw->flags = READ_ONCE(sqe->rw_flags);
+       rw->flags = (__force rwf_t) READ_ONCE(sqe->rw_flags);
 
        attr_type_mask = READ_ONCE(sqe->attr_type_mask);
        if (attr_type_mask) {