Re: [PATCH 5/6] ptrace: introduce PTRACE_SET_SYSCALL_INFO request

kernel test robot
2025-01-09T01:38:21Z

Hi Dmitry,

kernel test robot noticed the following build errors:

[auto build test ERROR on openrisc/for-next]
[also build test ERROR on powerpc/next powerpc/fixes s390/features uml/next jcmvbkbc-xtensa/xtensa-for-next arnd-asm-generic/master vgupta-arc/for-curr arm64/for-next/core linus/master uml/fixes tip/x86/core vgupta-arc/for-next v6.13-rc6 next-20250108]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Dmitry-V-Levin/Revert-arch-remove-unused-function-syscall_set_arguments/20250108-070658
base: https://github.com/openrisc/linux.git for-next
patch link: https://lore.kernel.org/r/20250107230456.GE30633%40strace.io
patch subject: [PATCH 5/6] ptrace: introduce PTRACE_SET_SYSCALL_INFO request
config: hexagon-allnoconfig (https://download.01.org/0day-ci/archive/20250109/202501090919.TiLTOhaq-lkp@intel.com/config)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 096551537b2a747a3387726ca618ceeb3950e9bc)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250109/202501090919.TiLTOhaq-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/202501090919.TiLTOhaq-lkp@intel.com/

All errors (new ones prefixed by >>):

>> kernel/ptrace.c:1053:3: error: call to undeclared function 'syscall_set_return_value'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
1053 | syscall_set_return_value(child, regs, -ENOSYS, 0);
| ^
kernel/ptrace.c:1053:3: note: did you mean 'syscall_get_return_value'?
arch/hexagon/include/asm/syscall.h:56:20: note: 'syscall_get_return_value' declared here
56 | static inline long syscall_get_return_value(struct task_struct *task,
| ^
kernel/ptrace.c:1075:3: error: call to undeclared function 'syscall_set_return_value'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
1075 | syscall_set_return_value(child, regs, info->exit.rval, 0);
| ^
2 errors generated.

vim +/syscall_set_return_value +1053 kernel/ptrace.c

1021
1022 static unsigned long
1023 ptrace_set_syscall_info_entry(struct task_struct *child, struct pt_regs *regs,
1024 struct ptrace_syscall_info *info)
1025 {
1026 unsigned long args[ARRAY_SIZE(info->entry.args)];
1027 int nr = info->entry.nr;
1028 int i;
1029
1030 if (nr != info->entry.nr)
1031 return -ERANGE;
1032
1033 for (i = 0; i < ARRAY_SIZE(args); i++) {
1034 args[i] = info->entry.args[i];
1035 if (args[i] != info->entry.args[i])
1036 return -ERANGE;
1037 }
1038
1039 syscall_set_nr(child, regs, nr);
1040 syscall_set_arguments(child, regs, args);
1041 if (nr == -1) {
1042 /*
1043 * When the syscall number is set to -1, the syscall will be
1044 * skipped. In this case also set the syscall return value to
1045 * -ENOSYS, otherwise on some architectures the corresponding
1046 * struct pt_regs field will remain unchanged.
1047 *
1048 * Note that on some architectures syscall_set_return_value()
1049 * modifies one of the struct pt_regs fields also modified by
1050 * syscall_set_arguments(), so the former should be called
1051 * after the latter.
1052 */
> 1053 syscall_set_return_value(child, regs, -ENOSYS, 0);
1054 }
1055
1056 return 0;
1057 }
1058

--
0-DAY CI Kernel Test Service