[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202601132310.hT6ZSHAG-lkp@intel.com>
Date: Tue, 13 Jan 2026 23:42:56 +0800
From: kernel test robot <lkp@...el.com>
To: Pavel Begunkov <asml.silence@...il.com>
Cc: oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
Jens Axboe <axboe@...nel.dk>
Subject: io_uring/io_uring.c:1667:25: sparse: sparse: restricted
io_req_flags_t degrades to integer
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: b71e635feefc852405b14620a7fc58c4c80c0f73
commit: 19a94da447f832ee614f8f5532d31c1c70061520 io_uring: consolidate drain seq checking
date: 8 months ago
config: i386-randconfig-061-20260113 (https://download.01.org/0day-ci/archive/20260113/202601132310.hT6ZSHAG-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260113/202601132310.hT6ZSHAG-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601132310.hT6ZSHAG-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
io_uring/io_uring.c: note: in included file (through include/linux/io_uring/cmd.h):
include/linux/io_uring_types.h:199:37: sparse: sparse: array of flexible structures
io_uring/io_uring.c:566:28: sparse: sparse: invalid assignment: |=
io_uring/io_uring.c:566:28: sparse: left side has type bool
io_uring/io_uring.c:566:28: sparse: right side has type restricted io_req_flags_t
>> io_uring/io_uring.c:1667:25: sparse: sparse: restricted io_req_flags_t degrades to integer
io_uring/io_uring.c:577:29: sparse: sparse: context imbalance in 'io_queue_deferred' - wrong count at exit
io_uring/io_uring.c:612:36: sparse: sparse: context imbalance in 'io_req_post_cqe' - unexpected unlock
io_uring/io_uring.c:614:17: sparse: sparse: context imbalance in '__io_submit_flush_completions' - different lock contexts for basic block
io_uring/io_uring.c:2398:29: sparse: sparse: context imbalance in 'io_cqring_min_timer_wakeup' - different lock contexts for basic block
vim +1667 io_uring/io_uring.c
1662
1663 static __cold void io_drain_req(struct io_kiocb *req)
1664 __must_hold(&ctx->uring_lock)
1665 {
1666 struct io_ring_ctx *ctx = req->ctx;
> 1667 bool drain = req->flags & IOSQE_IO_DRAIN;
1668 struct io_defer_entry *de;
1669
1670 de = kmalloc(sizeof(*de), GFP_KERNEL_ACCOUNT);
1671 if (!de) {
1672 io_req_defer_failed(req, -ENOMEM);
1673 return;
1674 }
1675
1676 io_prep_async_link(req);
1677 trace_io_uring_defer(req);
1678 de->req = req;
1679 de->seq = io_get_sequence(req);
1680
1681 scoped_guard(spinlock, &ctx->completion_lock) {
1682 list_add_tail(&de->list, &ctx->defer_list);
1683 __io_queue_deferred(ctx);
1684 if (!drain && list_empty(&ctx->defer_list))
1685 ctx->drain_active = false;
1686 }
1687 }
1688
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists