Re: [linux-stable-rc:linux-5.4.y 2563/9999] arch/ia64/kernel/kprobes.c:401:24: error: implicit declaration of function '__kretprobe_trampoline_handler'; did you mean 'kretprobe_trampoline'?

From: Masami Hiramatsu
Date: Thu Jan 13 2022 - 04:25:46 EST


On Thu, 13 Jan 2022 04:15:43 +0800
kernel test robot <lkp@xxxxxxxxx> wrote:

> Hi Masami,
>
> FYI, the error/warning still remains.
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y
> head: 0a4ce4977bbeea4560a1f32632650b388c834c8a
> commit: 77fa5e15c933a1ec812de61ad709c00aa51e96ae [2563/9999] ia64: kprobes: Use generic kretprobe trampoline handler
> config: ia64-randconfig-r002-20220112 (https://download.01.org/0day-ci/archive/20220113/202201130408.tdm9swhk-lkp@xxxxxxxxx/config)
> compiler: ia64-linux-gcc (GCC) 11.2.0
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/commit/?id=77fa5e15c933a1ec812de61ad709c00aa51e96ae
> git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
> git fetch --no-tags linux-stable-rc linux-5.4.y
> git checkout 77fa5e15c933a1ec812de61ad709c00aa51e96ae
> # save the config file to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=ia64 SHELL=/bin/bash
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> All errors (new ones prefixed by >>):
>
> arch/ia64/kernel/kprobes.c: In function 'get_kprobe_inst':
> arch/ia64/kernel/kprobes.c:325:22: warning: variable 'template' set but not used [-Wunused-but-set-variable]
> 325 | unsigned int template;
> | ^~~~~~~~

OK, this is another issue, which is in the upstream master too.

> arch/ia64/kernel/kprobes.c: At top level:
> arch/ia64/kernel/kprobes.c:399:15: warning: no previous prototype for 'trampoline_probe_handler' [-Wmissing-prototypes]
> 399 | int __kprobes trampoline_probe_handler(struct kprobe *p, struct pt_regs *regs)
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> arch/ia64/kernel/kprobes.c: In function 'trampoline_probe_handler':
> >> arch/ia64/kernel/kprobes.c:401:24: error: implicit declaration of function '__kretprobe_trampoline_handler'; did you mean 'kretprobe_trampoline'? [-Werror=implicit-function-declaration]
> 401 | regs->cr_iip = __kretprobe_trampoline_handler(regs, kretprobe_trampoline, NULL);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> | kretprobe_trampoline
> cc1: some warnings being treated as errors

This seems that the upstream commit e792ff804f49720ce003b3e4c618b5d996256a18
has been picked to the stable-5.4.y tree accidentally.
That is a part of lockless kretprobe series and should not be picked to
the stable tree.

Greg, can you revert commit 77fa5e15c933a1ec812de61ad709c00aa51e96ae ?
(Or should I send revert patch?)

Thank you,

>
>
> vim +401 arch/ia64/kernel/kprobes.c
>
> 398
> 399 int __kprobes trampoline_probe_handler(struct kprobe *p, struct pt_regs *regs)
> 400 {
> > 401 regs->cr_iip = __kretprobe_trampoline_handler(regs, kretprobe_trampoline, NULL);
> 402 /*
> 403 * By returning a non-zero value, we are telling
> 404 * kprobe_handler() that we don't want the post_handler
> 405 * to run (and have re-enabled preemption)
> 406 */
> 407 return 1;
> 408 }
> 409
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx


--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>