All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.