diff options
| -rw-r--r-- | include/linux/ftrace_event.h | 2 | ||||
| -rw-r--r-- | kernel/trace/trace_event_perf.c | 4 | ||||
| -rw-r--r-- | kernel/trace/trace_events.c | 2 | ||||
| -rw-r--r-- | kernel/trace/trace_kprobe.c | 2 | ||||
| -rw-r--r-- | kernel/trace/trace_syscalls.c | 4 |
5 files changed, 13 insertions, 1 deletions
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h index 195e3606ddd7..2bf677cb2d6f 100644 --- a/include/linux/ftrace_event.h +++ b/include/linux/ftrace_event.h | |||
| @@ -148,6 +148,8 @@ enum trace_reg { | |||
| 148 | TRACE_REG_PERF_UNREGISTER, | 148 | TRACE_REG_PERF_UNREGISTER, |
| 149 | TRACE_REG_PERF_OPEN, | 149 | TRACE_REG_PERF_OPEN, |
| 150 | TRACE_REG_PERF_CLOSE, | 150 | TRACE_REG_PERF_CLOSE, |
| 151 | TRACE_REG_PERF_ADD, | ||
| 152 | TRACE_REG_PERF_DEL, | ||
| 151 | }; | 153 | }; |
| 152 | 154 | ||
| 153 | struct ftrace_event_call; | 155 | struct ftrace_event_call; |
diff --git a/kernel/trace/trace_event_perf.c b/kernel/trace/trace_event_perf.c index 0cfcc37f63de..d72af0b03822 100644 --- a/kernel/trace/trace_event_perf.c +++ b/kernel/trace/trace_event_perf.c | |||
| @@ -211,12 +211,14 @@ int perf_trace_add(struct perf_event *p_event, int flags) | |||
| 211 | list = this_cpu_ptr(pcpu_list); | 211 | list = this_cpu_ptr(pcpu_list); |
| 212 | hlist_add_head_rcu(&p_event->hlist_entry, list); | 212 | hlist_add_head_rcu(&p_event->hlist_entry, list); |
| 213 | 213 | ||
| 214 | return 0; | 214 | return tp_event->class->reg(tp_event, TRACE_REG_PERF_ADD, p_event); |
| 215 | } | 215 | } |
| 216 | 216 | ||
| 217 | void perf_trace_del(struct perf_event *p_event, int flags) | 217 | void perf_trace_del(struct perf_event *p_event, int flags) |
| 218 | { | 218 | { |
| 219 | struct ftrace_event_call *tp_event = p_event->tp_event; | ||
| 219 | hlist_del_rcu(&p_event->hlist_entry); | 220 | hlist_del_rcu(&p_event->hlist_entry); |
| 221 | tp_event->class->reg(tp_event, TRACE_REG_PERF_DEL, p_event); | ||
| 220 | } | 222 | } |
| 221 | 223 | ||
| 222 | __kprobes void *perf_trace_buf_prepare(int size, unsigned short type, | 224 | __kprobes void *perf_trace_buf_prepare(int size, unsigned short type, |
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c index 5138fea37908..079a93ae8a9d 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c | |||
| @@ -173,6 +173,8 @@ int ftrace_event_reg(struct ftrace_event_call *call, | |||
| 173 | return 0; | 173 | return 0; |
| 174 | case TRACE_REG_PERF_OPEN: | 174 | case TRACE_REG_PERF_OPEN: |
| 175 | case TRACE_REG_PERF_CLOSE: | 175 | case TRACE_REG_PERF_CLOSE: |
| 176 | case TRACE_REG_PERF_ADD: | ||
| 177 | case TRACE_REG_PERF_DEL: | ||
| 176 | return 0; | 178 | return 0; |
| 177 | #endif | 179 | #endif |
| 178 | } | 180 | } |
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c index 5667f8958cc9..580a05ec926b 100644 --- a/kernel/trace/trace_kprobe.c +++ b/kernel/trace/trace_kprobe.c | |||
| @@ -1912,6 +1912,8 @@ int kprobe_register(struct ftrace_event_call *event, | |||
| 1912 | return 0; | 1912 | return 0; |
| 1913 | case TRACE_REG_PERF_OPEN: | 1913 | case TRACE_REG_PERF_OPEN: |
| 1914 | case TRACE_REG_PERF_CLOSE: | 1914 | case TRACE_REG_PERF_CLOSE: |
| 1915 | case TRACE_REG_PERF_ADD: | ||
| 1916 | case TRACE_REG_PERF_DEL: | ||
| 1915 | return 0; | 1917 | return 0; |
| 1916 | #endif | 1918 | #endif |
| 1917 | } | 1919 | } |
diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c index e23515f51ed4..96fc73369099 100644 --- a/kernel/trace/trace_syscalls.c +++ b/kernel/trace/trace_syscalls.c | |||
| @@ -666,6 +666,8 @@ static int syscall_enter_register(struct ftrace_event_call *event, | |||
| 666 | return 0; | 666 | return 0; |
| 667 | case TRACE_REG_PERF_OPEN: | 667 | case TRACE_REG_PERF_OPEN: |
| 668 | case TRACE_REG_PERF_CLOSE: | 668 | case TRACE_REG_PERF_CLOSE: |
| 669 | case TRACE_REG_PERF_ADD: | ||
| 670 | case TRACE_REG_PERF_DEL: | ||
| 669 | return 0; | 671 | return 0; |
| 670 | #endif | 672 | #endif |
| 671 | } | 673 | } |
| @@ -690,6 +692,8 @@ static int syscall_exit_register(struct ftrace_event_call *event, | |||
| 690 | return 0; | 692 | return 0; |
| 691 | case TRACE_REG_PERF_OPEN: | 693 | case TRACE_REG_PERF_OPEN: |
| 692 | case TRACE_REG_PERF_CLOSE: | 694 | case TRACE_REG_PERF_CLOSE: |
| 695 | case TRACE_REG_PERF_ADD: | ||
| 696 | case TRACE_REG_PERF_DEL: | ||
| 693 | return 0; | 697 | return 0; |
| 694 | #endif | 698 | #endif |
| 695 | } | 699 | } |
