tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.x86/entry head: e122258fa9a6538fb47d18e6da58f7a02de9b1d3 commit: 7fe6027ef3c397e42702eb8d4fcfa93cf4b2597f [13/39] x86/entry: Switch XEN/PV hypercall entry to IDTENTRY config: x86_64-rhel (attached as .config) compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0 reproduce (this is a W=1 build): git checkout 7fe6027ef3c397e42702eb8d4fcfa93cf4b2597f # save the attached .config to linux build tree make W=1 ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot All error/warnings (new ones prefixed by >>, old ones prefixed by <<): arch/x86/entry/common.c:54:24: warning: no previous prototype for 'enter_from_user_mode' [-Wmissing-prototypes] __visible noinstr void enter_from_user_mode(void) ^~~~~~~~~~~~~~~~~~~~ arch/x86/entry/common.c:269:24: warning: no previous prototype for 'prepare_exit_to_usermode' [-Wmissing-prototypes] __visible noinstr void prepare_exit_to_usermode(struct pt_regs *regs) ^~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/entry/common.c:331:24: warning: no previous prototype for 'syscall_return_slowpath' [-Wmissing-prototypes] __visible noinstr void syscall_return_slowpath(struct pt_regs *regs) ^~~~~~~~~~~~~~~~~~~~~~~ In file included from include/trace/events/xen.h:8:0, from arch/x86/include/asm/xen/hypercall.h:42, from include/xen/events.h:12, from arch/x86/entry/common.c:688: >> include/linux/tracepoint.h:282:20: error: redefinition of '__tpstrtab_sys_enter' static const char __tpstrtab_##name[] ^ >> include/trace/define_trace.h:42:2: note: in expansion of macro 'DEFINE_TRACE_FN' DEFINE_TRACE_FN(name, reg, unreg) ^~~~~~~~~~~~~~~ >> include/trace/events/syscalls.h:18:1: note: in expansion of macro 'TRACE_EVENT_FN' TRACE_EVENT_FN(sys_enter, ^~~~~~~~~~~~~~ In file included from include/trace/syscall.h:5:0, from include/linux/syscalls.h:85, from arch/x86/entry/common.c:27: include/linux/tracepoint.h:282:20: note: previous definition of '__tpstrtab_sys_enter' was here static const char __tpstrtab_##name[] ^ >> include/trace/define_trace.h:42:2: note: in expansion of macro 'DEFINE_TRACE_FN' DEFINE_TRACE_FN(name, reg, unreg) ^~~~~~~~~~~~~~~ >> include/trace/events/syscalls.h:18:1: note: in expansion of macro 'TRACE_EVENT_FN' TRACE_EVENT_FN(sys_enter, ^~~~~~~~~~~~~~ In file included from include/trace/events/xen.h:8:0, from arch/x86/include/asm/xen/hypercall.h:42, from include/xen/events.h:12, from arch/x86/entry/common.c:688: include/linux/tracepoint.h:284:20: error: redefinition of '__tracepoint_sys_enter' struct tracepoint __tracepoint_##name ^ >> include/trace/define_trace.h:42:2: note: in expansion of macro 'DEFINE_TRACE_FN' DEFINE_TRACE_FN(name, reg, unreg) ^~~~~~~~~~~~~~~ >> include/trace/events/syscalls.h:18:1: note: in expansion of macro 'TRACE_EVENT_FN' TRACE_EVENT_FN(sys_enter, ^~~~~~~~~~~~~~ In file included from include/trace/syscall.h:5:0, from include/linux/syscalls.h:85, from arch/x86/entry/common.c:27: include/linux/tracepoint.h:284:20: note: previous definition of '__tracepoint_sys_enter' was here struct tracepoint __tracepoint_##name ^ >> include/trace/define_trace.h:42:2: note: in expansion of macro 'DEFINE_TRACE_FN' DEFINE_TRACE_FN(name, reg, unreg) ^~~~~~~~~~~~~~~ >> include/trace/events/syscalls.h:18:1: note: in expansion of macro 'TRACE_EVENT_FN' TRACE_EVENT_FN(sys_enter, ^~~~~~~~~~~~~~ In file included from include/trace/events/xen.h:8:0, from arch/x86/include/asm/xen/hypercall.h:42, from include/xen/events.h:12, from arch/x86/entry/common.c:688: >> include/linux/tracepoint.h:282:20: error: redefinition of '__tpstrtab_sys_exit' static const char __tpstrtab_##name[] ^ >> include/trace/define_trace.h:42:2: note: in expansion of macro 'DEFINE_TRACE_FN' DEFINE_TRACE_FN(name, reg, unreg) ^~~~~~~~~~~~~~~ include/trace/events/syscalls.h:44:1: note: in expansion of macro 'TRACE_EVENT_FN' TRACE_EVENT_FN(sys_exit, ^~~~~~~~~~~~~~ In file included from include/trace/syscall.h:5:0, from include/linux/syscalls.h:85, from arch/x86/entry/common.c:27: include/linux/tracepoint.h:282:20: note: previous definition of '__tpstrtab_sys_exit' was here static const char __tpstrtab_##name[] ^ >> include/trace/define_trace.h:42:2: note: in expansion of macro 'DEFINE_TRACE_FN' DEFINE_TRACE_FN(name, reg, unreg) ^~~~~~~~~~~~~~~ include/trace/events/syscalls.h:44:1: note: in expansion of macro 'TRACE_EVENT_FN' TRACE_EVENT_FN(sys_exit, ^~~~~~~~~~~~~~ In file included from include/trace/events/xen.h:8:0, from arch/x86/include/asm/xen/hypercall.h:42, from include/xen/events.h:12, from arch/x86/entry/common.c:688: include/linux/tracepoint.h:284:20: error: redefinition of '__tracepoint_sys_exit' struct tracepoint __tracepoint_##name ^ >> include/trace/define_trace.h:42:2: note: in expansion of macro 'DEFINE_TRACE_FN' DEFINE_TRACE_FN(name, reg, unreg) ^~~~~~~~~~~~~~~ include/trace/events/syscalls.h:44:1: note: in expansion of macro 'TRACE_EVENT_FN' TRACE_EVENT_FN(sys_exit, ^~~~~~~~~~~~~~ In file included from include/trace/syscall.h:5:0, from include/linux/syscalls.h:85, from arch/x86/entry/common.c:27: include/linux/tracepoint.h:284:20: note: previous definition of '__tracepoint_sys_exit' was here struct tracepoint __tracepoint_##name ^ >> include/trace/define_trace.h:42:2: note: in expansion of macro 'DEFINE_TRACE_FN' DEFINE_TRACE_FN(name, reg, unreg) ^~~~~~~~~~~~~~~ include/trace/events/syscalls.h:44:1: note: in expansion of macro 'TRACE_EVENT_FN' TRACE_EVENT_FN(sys_exit, ^~~~~~~~~~~~~~ In file included from include/trace/define_trace.h:102:0, from include/trace/events/xen.h:479, from arch/x86/include/asm/xen/hypercall.h:42, from include/xen/events.h:12, from arch/x86/entry/common.c:688: >> include/trace/trace_events.h:27:23: error: redefinition of 'str__raw_syscalls__trace_system_name' #define __app__(x, y) str__##x##y ^ include/trace/trace_events.h:28:21: note: in expansion of macro '__app__' #define __app(x, y) __app__(x, y) ^~~~~~~ include/trace/trace_events.h:30:29: note: in expansion of macro '__app' #define TRACE_SYSTEM_STRING __app(TRACE_SYSTEM_VAR,__trace_system_name) ^~~~~ include/trace/trace_events.h:33:20: note: in expansion of macro 'TRACE_SYSTEM_STRING' static const char TRACE_SYSTEM_STRING[] = ^~~~~~~~~~~~~~~~~~~ include/trace/trace_events.h:36:1: note: in expansion of macro 'TRACE_MAKE_SYSTEM_STR' TRACE_MAKE_SYSTEM_STR(); ^~~~~~~~~~~~~~~~~~~~~ In file included from include/trace/define_trace.h:102:0, from include/trace/events/syscalls.h:73, from arch/x86/entry/common.c:41: include/trace/trace_events.h:27:23: note: previous definition of 'str__raw_syscalls__trace_system_name' was here #define __app__(x, y) str__##x##y ^ include/trace/trace_events.h:28:21: note: in expansion of macro '__app__' #define __app(x, y) __app__(x, y) ^~~~~~~ include/trace/trace_events.h:30:29: note: in expansion of macro '__app' #define TRACE_SYSTEM_STRING __app(TRACE_SYSTEM_VAR,__trace_system_name) ^~~~~ include/trace/trace_events.h:33:20: note: in expansion of macro 'TRACE_SYSTEM_STRING' static const char TRACE_SYSTEM_STRING[] = ^~~~~~~~~~~~~~~~~~~ include/trace/trace_events.h:36:1: note: in expansion of macro 'TRACE_MAKE_SYSTEM_STR' TRACE_MAKE_SYSTEM_STR(); ^~~~~~~~~~~~~~~~~~~~~ In file included from include/trace/define_trace.h:102:0, from include/trace/events/xen.h:479, from arch/x86/include/asm/xen/hypercall.h:42, from include/xen/events.h:12, from arch/x86/entry/common.c:688: >> include/trace/trace_events.h:113:9: error: redefinition of 'struct trace_event_raw_sys_enter' struct trace_event_raw_##name { ^ include/trace/trace_events.h:75:2: note: in expansion of macro 'DECLARE_EVENT_CLASS' DECLARE_EVENT_CLASS(name, ^~~~~~~~~~~~~~~~~~~ include/trace/trace_events.h:138:2: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(name, PARAMS(proto), PARAMS(args), ^~~~~~~~~~~ >> include/trace/events/syscalls.h:18:1: note: in expansion of macro 'TRACE_EVENT_FN' TRACE_EVENT_FN(sys_enter, ^~~~~~~~~~~~~~ In file included from include/trace/define_trace.h:102:0, from include/trace/events/syscalls.h:73, from arch/x86/entry/common.c:41: include/trace/trace_events.h:113:9: note: originally defined here struct trace_event_raw_##name { ^ include/trace/trace_events.h:75:2: note: in expansion of macro 'DECLARE_EVENT_CLASS' DECLARE_EVENT_CLASS(name, ^~~~~~~~~~~~~~~~~~~ include/trace/trace_events.h:138:2: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(name, PARAMS(proto), PARAMS(args), ^~~~~~~~~~~ >> include/trace/events/syscalls.h:18:1: note: in expansion of macro 'TRACE_EVENT_FN' TRACE_EVENT_FN(sys_enter, ^~~~~~~~~~~~~~ In file included from include/trace/syscall.h:7:0, from include/linux/syscalls.h:85, from arch/x86/entry/common.c:27: >> include/linux/trace_events.h:552:20: error: redefinition of 'trace_init_flags_sys_enter' static int __init trace_init_flags_##name(void) ^ >> include/trace/trace_events.h:149:2: note: in expansion of macro '__TRACE_EVENT_FLAGS' __TRACE_EVENT_FLAGS(name, value) ^~~~~~~~~~~~~~~~~~~ include/trace/events/syscalls.h:42:1: note: in expansion of macro 'TRACE_EVENT_FLAGS' TRACE_EVENT_FLAGS(sys_enter, TRACE_EVENT_FL_CAP_ANY) ^~~~~~~~~~~~~~~~~ include/linux/trace_events.h:552:20: note: previous definition of 'trace_init_flags_sys_enter' was here static int __init trace_init_flags_##name(void) ^ include/trace/trace_events.h:149:2: note: in expansion of macro '__TRACE_EVENT_FLAGS' __TRACE_EVENT_FLAGS(name, value) ^~~~~~~~~~~~~~~~~~~ include/trace/events/syscalls.h:42:1: note: in expansion of macro 'TRACE_EVENT_FLAGS' TRACE_EVENT_FLAGS(sys_enter, TRACE_EVENT_FL_CAP_ANY) ^~~~~~~~~~~~~~~~~ In file included from :0:0: include/linux/compiler.h:384:11: error: redefinition of '__addressable_trace_init_flags_sys_enter42' __PASTE(__addressable_##sym, __LINE__) = (void *)&sym; ^ include/linux/compiler_types.h:53:23: note: in definition of macro '___PASTE' #define ___PASTE(a,b) a##b ^ include/linux/compiler.h:384:3: note: in expansion of macro '__PASTE' __PASTE(__addressable_##sym, __LINE__) = (void *)&sym; ^~~~~~~ include/linux/init.h:189:2: note: in expansion of macro '__ADDRESSABLE' __ADDRESSABLE(fn) ^~~~~~~~~~~~~ include/linux/init.h:200:35: note: in expansion of macro '___define_initcall' #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id) ^~~~~~~~~~~~~~~~~~ include/linux/init.h:207:29: note: in expansion of macro '__define_initcall' #define early_initcall(fn) __define_initcall(fn, early) ^~~~~~~~~~~~~~~~~ include/linux/trace_events.h:557:2: note: in expansion of macro 'early_initcall' early_initcall(trace_init_flags_##name); ^~~~~~~~~~~~~~ include/trace/trace_events.h:149:2: note: in expansion of macro '__TRACE_EVENT_FLAGS' __TRACE_EVENT_FLAGS(name, value) ^~~~~~~~~~~~~~~~~~~ include/trace/events/syscalls.h:42:1: note: in expansion of macro 'TRACE_EVENT_FLAGS' TRACE_EVENT_FLAGS(sys_enter, TRACE_EVENT_FL_CAP_ANY) ^~~~~~~~~~~~~~~~~ include/linux/compiler.h:384:11: note: previous definition of '__addressable_trace_init_flags_sys_enter42' was here __PASTE(__addressable_##sym, __LINE__) = (void *)&sym; ^ include/linux/compiler_types.h:53:23: note: in definition of macro '___PASTE' #define ___PASTE(a,b) a##b ^ include/linux/compiler.h:384:3: note: in expansion of macro '__PASTE' __PASTE(__addressable_##sym, __LINE__) = (void *)&sym; ^~~~~~~ include/linux/init.h:189:2: note: in expansion of macro '__ADDRESSABLE' __ADDRESSABLE(fn) ^~~~~~~~~~~~~ include/linux/init.h:200:35: note: in expansion of macro '___define_initcall' #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id) ^~~~~~~~~~~~~~~~~~ include/linux/init.h:207:29: note: in expansion of macro '__define_initcall' #define early_initcall(fn) __define_initcall(fn, early) ^~~~~~~~~~~~~~~~~ include/linux/trace_events.h:557:2: note: in expansion of macro 'early_initcall' early_initcall(trace_init_flags_##name); ^~~~~~~~~~~~~~ include/trace/trace_events.h:149:2: note: in expansion of macro '__TRACE_EVENT_FLAGS' __TRACE_EVENT_FLAGS(name, value) ^~~~~~~~~~~~~~~~~~~ include/trace/events/syscalls.h:42:1: note: in expansion of macro 'TRACE_EVENT_FLAGS' TRACE_EVENT_FLAGS(sys_enter, TRACE_EVENT_FL_CAP_ANY) ^~~~~~~~~~~~~~~~~ In file included from include/trace/define_trace.h:102:0, from include/trace/events/xen.h:479, from arch/x86/include/asm/xen/hypercall.h:42, from include/xen/events.h:12, from arch/x86/entry/common.c:688: include/trace/trace_events.h:113:9: error: redefinition of 'struct trace_event_raw_sys_exit' struct trace_event_raw_##name { ^ include/trace/trace_events.h:75:2: note: in expansion of macro 'DECLARE_EVENT_CLASS' DECLARE_EVENT_CLASS(name, ^~~~~~~~~~~~~~~~~~~ include/trace/trace_events.h:138:2: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(name, PARAMS(proto), PARAMS(args), ^~~~~~~~~~~ include/trace/events/syscalls.h:44:1: note: in expansion of macro 'TRACE_EVENT_FN' TRACE_EVENT_FN(sys_exit, ^~~~~~~~~~~~~~ In file included from include/trace/define_trace.h:102:0, from include/trace/events/syscalls.h:73, from arch/x86/entry/common.c:41: include/trace/trace_events.h:113:9: note: originally defined here struct trace_event_raw_##name { ^ include/trace/trace_events.h:75:2: note: in expansion of macro 'DECLARE_EVENT_CLASS' DECLARE_EVENT_CLASS(name, ^~~~~~~~~~~~~~~~~~~ include/trace/trace_events.h:138:2: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(name, PARAMS(proto), PARAMS(args), ^~~~~~~~~~~ include/trace/events/syscalls.h:44:1: note: in expansion of macro 'TRACE_EVENT_FN' TRACE_EVENT_FN(sys_exit, vim +/TRACE_EVENT_FN +18 include/trace/events/syscalls.h 1c569f0264ea62 Josh Stone 2009-08-24 17 1c569f0264ea62 Josh Stone 2009-08-24 @18 TRACE_EVENT_FN(sys_enter, 1c569f0264ea62 Josh Stone 2009-08-24 19 1c569f0264ea62 Josh Stone 2009-08-24 20 TP_PROTO(struct pt_regs *regs, long id), 1c569f0264ea62 Josh Stone 2009-08-24 21 1c569f0264ea62 Josh Stone 2009-08-24 22 TP_ARGS(regs, id), 1c569f0264ea62 Josh Stone 2009-08-24 23 1c569f0264ea62 Josh Stone 2009-08-24 24 TP_STRUCT__entry( 1c569f0264ea62 Josh Stone 2009-08-24 25 __field( long, id ) 1c569f0264ea62 Josh Stone 2009-08-24 26 __array( unsigned long, args, 6 ) 1c569f0264ea62 Josh Stone 2009-08-24 27 ), 1c569f0264ea62 Josh Stone 2009-08-24 28 1c569f0264ea62 Josh Stone 2009-08-24 29 TP_fast_assign( 1c569f0264ea62 Josh Stone 2009-08-24 30 __entry->id = id; b35f549df1d752 Steven Rostedt (Red Hat 2016-11-07 31) syscall_get_arguments(current, regs, __entry->args); 1c569f0264ea62 Josh Stone 2009-08-24 32 ), 1c569f0264ea62 Josh Stone 2009-08-24 33 1c569f0264ea62 Josh Stone 2009-08-24 34 TP_printk("NR %ld (%lx, %lx, %lx, %lx, %lx, %lx)", 1c569f0264ea62 Josh Stone 2009-08-24 35 __entry->id, 1c569f0264ea62 Josh Stone 2009-08-24 36 __entry->args[0], __entry->args[1], __entry->args[2], 1c569f0264ea62 Josh Stone 2009-08-24 37 __entry->args[3], __entry->args[4], __entry->args[5]), 1c569f0264ea62 Josh Stone 2009-08-24 38 1c569f0264ea62 Josh Stone 2009-08-24 39 syscall_regfunc, syscall_unregfunc 1c569f0264ea62 Josh Stone 2009-08-24 40 ); 1c569f0264ea62 Josh Stone 2009-08-24 41 fe5542030dce3b Frederic Weisbecker 2010-11-18 @42 TRACE_EVENT_FLAGS(sys_enter, TRACE_EVENT_FL_CAP_ANY) fe5542030dce3b Frederic Weisbecker 2010-11-18 43 :::::: The code at line 18 was first introduced by commit :::::: 1c569f0264ea629c10bbab471dd0626ce4d3f19f tracing: Create generic syscall TRACE_EVENTs :::::: TO: Josh Stone :::::: CC: Frederic Weisbecker --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org