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 |
|---|---|
| Message-ID | <[email protected]> |
:::::: :::::: Manual check reason: "low confidence bisect report" :::::: BCC: [email protected] CC: [email protected] In-Reply-To: <[email protected]> References: <[email protected]> TO: Will Deacon <[email protected]> TO: [email protected] CC: [email protected] CC: Will Deacon <[email protected]> CC: Kees Cook <[email protected]> CC: Jinjie Ruan <[email protected]> CC: Mark Rutland <[email protected]> CC: Yiqi Sun <[email protected]> CC: Catalin Marinas <[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 :::::: branch date: 2 days ago :::::: commit date: 2 days ago config: arm64-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20260817/[email protected]/config) compiler: aarch64-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260817/[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/r/[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 3157858feff8919 AKASHI Takahiro 2014-04-30 2460 f579bf33f3c09c9 Will Deacon 2026-07-14 @2461 static void update_syscall_orig_x0_after_ptrace(struct pt_regs *regs) f579bf33f3c09c9 Will Deacon 2026-07-14 2462 { f579bf33f3c09c9 Will Deacon 2026-07-14 2463 /* f579bf33f3c09c9 Will Deacon 2026-07-14 2464 * Keep orig_x0 authoritative so that seccomp (via f579bf33f3c09c9 Will Deacon 2026-07-14 2465 * syscall_get_arguments()), audit and the restart path all see the same f579bf33f3c09c9 Will Deacon 2026-07-14 2466 * first argument the syscall is dispatched with, even if it has been f579bf33f3c09c9 Will Deacon 2026-07-14 2467 * updated by a tracer. Skip this for NO_SYSCALL (set either by the user f579bf33f3c09c9 Will Deacon 2026-07-14 2468 * or the tracer), as regs[0] holds the return value (see the comment in f579bf33f3c09c9 Will Deacon 2026-07-14 2469 * el0_svc_common()) and can be unwound using syscall_rollback(). f579bf33f3c09c9 Will Deacon 2026-07-14 2470 * For compat tasks, orig_r0 is provided directly through GPR index 17. f579bf33f3c09c9 Will Deacon 2026-07-14 2471 */ f579bf33f3c09c9 Will Deacon 2026-07-14 2472 if (!is_compat_task() && regs->syscallno != NO_SYSCALL) f579bf33f3c09c9 Will Deacon 2026-07-14 2473 regs->orig_x0 = regs->regs[0]; f579bf33f3c09c9 Will Deacon 2026-07-14 2474 } f579bf33f3c09c9 Will Deacon 2026-07-14 2475 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki