Re: [PATCH] arm64: syscall: Ensure saved x0 is kept in-sync with tracer updates

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-kbuild-all,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Hi Will,

kernel test robot noticed the following build errors:

[auto build test ERROR on linux-review/Yiqi-Sun/arm64-ptrace-use-live-x0-for-seccomp-and-audit-after-ptrace/20260815-210721]

url:    https://github.com/intel-lab-lkp/linux/commits/Will-Deacon/arm64-syscall-Ensure-saved-x0-is-kept-in-sync-with-tracer-updates/20260815-220235
base:   https://github.com/intel-lab-lkp/linux Yiqi-Sun/arm64-ptrace-use-live-x0-for-seccomp-and-audit-after-ptrace/20260815-210721
patch link:    https://lore.kernel.org/r/20260714143600.23853-1-will%40kernel.org
patch subject: [PATCH] arm64: syscall: Ensure saved x0 is kept in-sync with tracer updates
config: arm64-randconfig-001 (https://download.01.org/0day-ci/archive/20260820/[email protected]/config)
compiler: aarch64-linux-gcc (GCC) 14.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260820/[email protected]/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 <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

>> arch/arm64/kernel/ptrace.c:2461:13: error: conflicting types for 'update_syscall_orig_x0_after_ptrace'; have 'void(struct pt_regs *)'
    2461 | static void update_syscall_orig_x0_after_ptrace(struct pt_regs *regs)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/arm64/kernel/ptrace.c:563:13: note: previous definition of 'update_syscall_orig_x0_after_ptrace' with type 'void(struct task_struct *)'
     563 | static void update_syscall_orig_x0_after_ptrace(struct task_struct *target)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +2461 arch/arm64/kernel/ptrace.c

  2460	
> 2461	static void update_syscall_orig_x0_after_ptrace(struct pt_regs *regs)
  2462	{
  2463		/*
  2464		 * Keep orig_x0 authoritative so that seccomp (via
  2465		 * syscall_get_arguments()), audit and the restart path all see the same
  2466		 * first argument the syscall is dispatched with, even if it has been
  2467		 * updated by a tracer. Skip this for NO_SYSCALL (set either by the user
  2468		 * or the tracer), as regs[0] holds the return value (see the comment in
  2469		 * el0_svc_common()) and can be unwound using syscall_rollback().
  2470		 * For compat tasks, orig_r0 is provided directly through GPR index 17.
  2471		 */
  2472		if (!is_compat_task() && regs->syscallno != NO_SYSCALL)
  2473			regs->orig_x0 = regs->regs[0];
  2474	}
  2475	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.