[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202210251249.B7u6n4v5-lkp@intel.com>
Date: Tue, 25 Oct 2022 12:39:15 +0800
From: kernel test robot <lkp@...el.com>
To: Mark Rutland <mark.rutland@....com>
Cc: kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: [mark:arm64/ftrace/per-callsite-ops 1/11]
include/linux/ftrace.h:445:20: error: redefinition of
'arch_ftrace_set_direct_caller'
Hi Mark,
FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arm64/ftrace/per-callsite-ops
head: f73350f69ff3e7a2061b0021644bc9846664a3d3
commit: 6262590b79bc8a27439257aebbfc3d1ce45791dd [1/11] ftrace: pass fregs to arch_ftrace_set_direct_caller()
config: x86_64-randconfig-a004
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/commit/?id=6262590b79bc8a27439257aebbfc3d1ce45791dd
git remote add mark https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git
git fetch --no-tags mark arm64/ftrace/per-callsite-ops
git checkout 6262590b79bc8a27439257aebbfc3d1ce45791dd
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=x86_64 prepare
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>
All errors (new ones prefixed by >>):
In file included from include/linux/kvm_host.h:32,
from arch/x86/kernel/../kvm/vmx/vmx.h:5,
from arch/x86/kernel/asm-offsets.c:22:
>> include/linux/ftrace.h:445:20: error: redefinition of 'arch_ftrace_set_direct_caller'
445 | static inline void arch_ftrace_set_direct_caller(struct ftrace_regs *fregs,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/ftrace.h:23,
from include/linux/kvm_host.h:32,
from arch/x86/kernel/../kvm/vmx/vmx.h:5,
from arch/x86/kernel/asm-offsets.c:22:
arch/x86/include/asm/ftrace.h:69:20: note: previous definition of 'arch_ftrace_set_direct_caller' with type 'void(struct ftrace_regs *, long unsigned int)'
69 | static inline void arch_ftrace_set_direct_caller(struct ftrace_regs *fregs, unsigned long addr)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [scripts/Makefile.build:118: arch/x86/kernel/asm-offsets.s] Error 1
make[2]: Target 'prepare' not remade because of errors.
make[1]: *** [Makefile:1270: prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:231: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
vim +/arch_ftrace_set_direct_caller +445 include/linux/ftrace.h
431
432 /*
433 * This must be implemented by the architecture.
434 * It is the way the ftrace direct_ops helper, when called
435 * via ftrace (because there's other callbacks besides the
436 * direct call), can inform the architecture's trampoline that this
437 * routine has a direct caller, and what the caller is.
438 *
439 * For example, in x86, it returns the direct caller
440 * callback function via the regs->orig_ax parameter.
441 * Then in the ftrace trampoline, if this is set, it makes
442 * the return from the trampoline jump to the direct caller
443 * instead of going back to the function it just traced.
444 */
> 445 static inline void arch_ftrace_set_direct_caller(struct ftrace_regs *fregs,
446 unsigned long addr) { }
447 #endif /* CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS */
448
--
0-DAY CI Kernel Test Service
https://01.org/lkp
View attachment "config" of type "text/plain" (139231 bytes)
Powered by blists - more mailing lists