Re: [PATCH 6/9] s390/bug: Implement __WARN_printf()

From: kernel test robot
Date: Wed Dec 10 2025 - 09:57:36 EST


Hi Heiko,

kernel test robot noticed the following build errors:

[auto build test ERROR on 70075e3d0ca0b72cc983d03f7cd9796e43492980]

url: https://github.com/intel-lab-lkp/linux/commits/Heiko-Carstens/kbuild-Require-gcc-9-for-s390/20251209-202647
base: 70075e3d0ca0b72cc983d03f7cd9796e43492980
patch link: https://lore.kernel.org/r/20251209121701.1856271-7-hca%40linux.ibm.com
patch subject: [PATCH 6/9] s390/bug: Implement __WARN_printf()
config: s390-randconfig-r062-20251210 (https://download.01.org/0day-ci/archive/20251210/202512102243.DTSqDkfQ-lkp@xxxxxxxxx/config)
compiler: s390-linux-gcc (GCC) 14.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251210/202512102243.DTSqDkfQ-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512102243.DTSqDkfQ-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

arch/s390/kernel/traps.c:224:26: warning: 'struct arch_va_list' declared inside parameter list will not be visible outside of this definition or declaration
224 | void *__warn_args(struct arch_va_list *args, struct pt_regs *regs)
| ^~~~~~~~~~~~
arch/s390/kernel/traps.c:224:7: warning: no previous prototype for '__warn_args' [-Wmissing-prototypes]
224 | void *__warn_args(struct arch_va_list *args, struct pt_regs *regs)
| ^~~~~~~~~~~
arch/s390/kernel/traps.c: In function '__warn_args':
>> arch/s390/kernel/traps.c:243:13: error: invalid use of undefined type 'struct arch_va_list'
243 | args->__overflow_arg_area = stack_frame + 1;
| ^~
arch/s390/kernel/traps.c:244:13: error: invalid use of undefined type 'struct arch_va_list'
244 | args->__reg_save_area = regs->gprs;
| ^~
arch/s390/kernel/traps.c:245:13: error: invalid use of undefined type 'struct arch_va_list'
245 | args->__gpr = 1;
| ^~


vim +243 arch/s390/kernel/traps.c

223
> 224 void *__warn_args(struct arch_va_list *args, struct pt_regs *regs)
225 {
226 struct stack_frame *stack_frame;
227
228 /*
229 * Generate va_list from pt_regs. See ELF Application Binary Interface
230 * s390x Supplement documentation for details.
231 *
232 * - __overflow_arg_area needs to point to the parameter area, which
233 * is right above the standard stack frame (160 bytes)
234 *
235 * - __reg_save_area needs to point to a register save area where
236 * general registers (%r2 - %r6) can be found at offset 16. Which
237 * means that the gprs save area of pt_regs can be used
238 *
239 * - __gpr must be set to one, since the first parameter has been
240 * processed (pointer to bug_entry)
241 */
242 stack_frame = (struct stack_frame *)regs->gprs[15];
> 243 args->__overflow_arg_area = stack_frame + 1;
244 args->__reg_save_area = regs->gprs;
245 args->__gpr = 1;
246 return args;
247 }
248

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