]> git.proxmox.com Git - mirror_ubuntu-kernels.git/blobdiff - include/linux/syscalls.h
trace_syscalls: Remove duplicate init_enter_##sname()
[mirror_ubuntu-kernels.git] / include / linux / syscalls.h
index a990ace1a8380f01901b742a6b0821aff46a5d9d..cf0d923ea40e17fff5e5c883433d86a16ced2e53 100644 (file)
@@ -100,23 +100,23 @@ struct perf_event_attr;
 
 #ifdef CONFIG_EVENT_PROFILE
 #define TRACE_SYS_ENTER_PROFILE(sname)                                        \
-static int prof_sysenter_enable_##sname(void)                                 \
+static int prof_sysenter_enable_##sname(struct ftrace_event_call *unused)      \
 {                                                                             \
        return reg_prof_syscall_enter("sys"#sname);                            \
 }                                                                             \
                                                                               \
-static void prof_sysenter_disable_##sname(void)                                       \
+static void prof_sysenter_disable_##sname(struct ftrace_event_call *unused)    \
 {                                                                             \
        unreg_prof_syscall_enter("sys"#sname);                                 \
 }
 
 #define TRACE_SYS_EXIT_PROFILE(sname)                                         \
-static int prof_sysexit_enable_##sname(void)                                  \
+static int prof_sysexit_enable_##sname(struct ftrace_event_call *unused)       \
 {                                                                             \
        return reg_prof_syscall_exit("sys"#sname);                             \
 }                                                                             \
                                                                               \
-static void prof_sysexit_disable_##sname(void)                                \
+static void prof_sysexit_disable_##sname(struct ftrace_event_call *unused)     \
 {                                                                              \
        unreg_prof_syscall_exit("sys"#sname);                                  \
 }
@@ -153,24 +153,11 @@ static void prof_sysexit_disable_##sname(void)                                   \
 #define __SC_STR_TDECL6(t, a, ...)     #t, __SC_STR_TDECL5(__VA_ARGS__)
 
 #define SYSCALL_TRACE_ENTER_EVENT(sname)                               \
+       static const struct syscall_metadata __syscall_meta_##sname;    \
        static struct ftrace_event_call event_enter_##sname;            \
        struct trace_event enter_syscall_print_##sname = {              \
                .trace                  = print_syscall_enter,          \
        };                                                              \
-       static int init_enter_##sname(void)                             \
-       {                                                               \
-               int num, id;                                            \
-               num = syscall_name_to_nr("sys"#sname);                  \
-               if (num < 0)                                            \
-                       return -ENOSYS;                                 \
-               id = register_ftrace_event(&enter_syscall_print_##sname);\
-               if (!id)                                                \
-                       return -ENODEV;                                 \
-               event_enter_##sname.id = id;                            \
-               set_syscall_enter_id(num, id);                          \
-               INIT_LIST_HEAD(&event_enter_##sname.fields);            \
-               return 0;                                               \
-       }                                                               \
        TRACE_SYS_ENTER_PROFILE(sname);                                 \
        static struct ftrace_event_call __used                          \
          __attribute__((__aligned__(4)))                               \
@@ -178,35 +165,22 @@ static void prof_sysexit_disable_##sname(void)                                   \
          event_enter_##sname = {                                       \
                .name                   = "sys_enter"#sname,            \
                .system                 = "syscalls",                   \
-               .event                  = &event_syscall_enter,         \
-               .raw_init               = init_enter_##sname,           \
+               .event                  = &enter_syscall_print_##sname, \
+               .raw_init               = init_syscall_trace,           \
                .show_format            = syscall_enter_format,         \
                .define_fields          = syscall_enter_define_fields,  \
                .regfunc                = reg_event_syscall_enter,      \
                .unregfunc              = unreg_event_syscall_enter,    \
-               .data                   = "sys"#sname,                  \
+               .data                   = (void *)&__syscall_meta_##sname,\
                TRACE_SYS_ENTER_PROFILE_INIT(sname)                     \
        }
 
 #define SYSCALL_TRACE_EXIT_EVENT(sname)                                        \
+       static const struct syscall_metadata __syscall_meta_##sname;    \
        static struct ftrace_event_call event_exit_##sname;             \
        struct trace_event exit_syscall_print_##sname = {               \
                .trace                  = print_syscall_exit,           \
        };                                                              \
-       static int init_exit_##sname(void)                              \
-       {                                                               \
-               int num, id;                                            \
-               num = syscall_name_to_nr("sys"#sname);                  \
-               if (num < 0)                                            \
-                       return -ENOSYS;                                 \
-               id = register_ftrace_event(&exit_syscall_print_##sname);\
-               if (!id)                                                \
-                       return -ENODEV;                                 \
-               event_exit_##sname.id = id;                             \
-               set_syscall_exit_id(num, id);                           \
-               INIT_LIST_HEAD(&event_exit_##sname.fields);             \
-               return 0;                                               \
-       }                                                               \
        TRACE_SYS_EXIT_PROFILE(sname);                                  \
        static struct ftrace_event_call __used                          \
          __attribute__((__aligned__(4)))                               \
@@ -214,13 +188,13 @@ static void prof_sysexit_disable_##sname(void)                                   \
          event_exit_##sname = {                                        \
                .name                   = "sys_exit"#sname,             \
                .system                 = "syscalls",                   \
-               .event                  = &event_syscall_exit,          \
-               .raw_init               = init_exit_##sname,            \
+               .event                  = &exit_syscall_print_##sname,  \
+               .raw_init               = init_syscall_trace,           \
                .show_format            = syscall_exit_format,          \
                .define_fields          = syscall_exit_define_fields,   \
                .regfunc                = reg_event_syscall_exit,       \
                .unregfunc              = unreg_event_syscall_exit,     \
-               .data                   = "sys"#sname,                  \
+               .data                   = (void *)&__syscall_meta_##sname,\
                TRACE_SYS_EXIT_PROFILE_INIT(sname)                      \
        }