Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Jens Axboe <axboe@kernel.dk>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: [axboe:io_uring-thread-handoff 10/13] io_uring/handoff.c:307:36: error: call to undeclared function 'task_stack_page'; ISO C99 and later do not support implicit function declarations
Date: Tue, 01 Sep 2026 20:16:22 +0800	[thread overview]
Message-ID: <202609012001.qCSj57tc-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux.git io_uring-thread-handoff
head:   e787853bf31af505ee20b5a64dd31bdaaca8bedd
commit: d664aea9c73b2f39f16192756888e0c03aa1fa28 [10/13] io_uring: enable handing submitter identity to an io-wq worker
config: x86_64-allnoconfig (https://download.01.org/0day-ci/archive/20260901/202609012001.qCSj57tc-lkp@intel.com/config)
compiler: clang version 22.1.3 (https://github.com/llvm/llvm-project e9846648fd6183ee6d8cbdb4502213fcf902a211)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260901/202609012001.qCSj57tc-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609012001.qCSj57tc-lkp@intel.com/

All errors (new ones prefixed by >>):

>> io_uring/handoff.c:307:36: error: call to undeclared function 'task_stack_page'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     307 |         syscall_set_return_value(current, task_pt_regs(current),
         |                                           ^
   arch/x86/include/asm/processor.h:668:39: note: expanded from macro 'task_pt_regs'
     668 |         unsigned long __ptr = (unsigned long)task_stack_page(task);     \
         |                                              ^
   1 error generated.


vim +/task_stack_page +307 io_uring/handoff.c

   250	
   251	/*
   252	 * Runs on the task that got handed the submitter identity: finish taking
   253	 * it over, then resume io_uring_enter() where io_submit_sqes() would have
   254	 * returned and take the syscall result to userspace.
   255	 */
   256	static long io_handoff_resume(void)
   257	{
   258		struct io_uring_task *tctx = current->io_uring;
   259		struct io_handoff *ho = &tctx->handoff;
   260		struct task_struct *src = ho->src;
   261		struct io_kiocb *req = ho->req;
   262		struct io_ring_ctx *ctx = req->ctx;
   263		struct io_submit_state *state = &ctx->submit_state;
   264		bool bound = io_handoff_bound(req);
   265		unsigned int consumed, left;
   266		long ret;
   267	
   268		if (WARN_ON_ONCE(thread_handoff_finish(src)))
   269			force_sig(SIGKILL);
   270		io_wq_handoff_finished(src);
   271		put_task_struct_many(src, ho->src_refs);
   272		ho->src_refs = 0;
   273		ho->src = NULL;
   274		ho->req = NULL;
   275	
   276		/* we took a worker, top the spare pool back up */
   277		io_wq_handoff_spare(tctx->io_wq, bound, true);
   278	
   279		/*
   280		 * Finish the batch the blocked request was part of, then submit
   281		 * what's left of the syscall. Another handoff continues from here,
   282		 * the consumed count lives in the tctx.
   283		 */
   284		io_run_task_work();
   285		mutex_lock(&ctx->uring_lock);
   286		consumed = ctx->cached_sq_head - state->sq_head;
   287		left = state->submit_nr - consumed;
   288		ret = io_submit_sqes_end(ctx, state->submit_nr, left);
   289		ho->consumed += ret;
   290		if (ho->consumed < ho->to_submit) {
   291			ret = io_submit_sqes(ctx, ho->to_submit - ho->consumed);
   292			if (ret == -EIOCBQUEUED)
   293				return ret;
   294			if (ret > 0)
   295				ho->consumed += ret;
   296		}
   297		ret = ho->consumed;
   298		if (ret != ho->to_submit) {
   299			mutex_unlock(&ctx->uring_lock);
   300		} else {
   301			ret = io_uring_enter_finish(ctx, ret, ho->min_complete,
   302						    ho->flags, ho->argp, ho->argsz);
   303		}
   304		if (!(ho->flags & IORING_ENTER_REGISTERED_RING))
   305			fput(ho->file);
   306	
 > 307		syscall_set_return_value(current, task_pt_regs(current),
   308					 ret < 0 ? ret : 0, ret);
   309		return ret;
   310	}
   311	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

                 reply	other threads:[~2026-09-01 12:16 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202609012001.qCSj57tc-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=axboe@kernel.dk \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox