diff options
-rw-r--r-- | kernel/trace/trace_irqsoff.c | 9 | ||||
-rw-r--r-- | kernel/trace/trace_preemptirq.c | 5 |
2 files changed, 12 insertions, 2 deletions
diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c index d3294721f119..d42a473b8240 100644 --- a/kernel/trace/trace_irqsoff.c +++ b/kernel/trace/trace_irqsoff.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/uaccess.h> | 14 | #include <linux/uaccess.h> |
15 | #include <linux/module.h> | 15 | #include <linux/module.h> |
16 | #include <linux/ftrace.h> | 16 | #include <linux/ftrace.h> |
17 | #include <linux/kprobes.h> | ||
17 | 18 | ||
18 | #include "trace.h" | 19 | #include "trace.h" |
19 | 20 | ||
@@ -365,7 +366,7 @@ out: | |||
365 | __trace_function(tr, CALLER_ADDR0, parent_ip, flags, pc); | 366 | __trace_function(tr, CALLER_ADDR0, parent_ip, flags, pc); |
366 | } | 367 | } |
367 | 368 | ||
368 | static inline void | 369 | static nokprobe_inline void |
369 | start_critical_timing(unsigned long ip, unsigned long parent_ip, int pc) | 370 | start_critical_timing(unsigned long ip, unsigned long parent_ip, int pc) |
370 | { | 371 | { |
371 | int cpu; | 372 | int cpu; |
@@ -401,7 +402,7 @@ start_critical_timing(unsigned long ip, unsigned long parent_ip, int pc) | |||
401 | atomic_dec(&data->disabled); | 402 | atomic_dec(&data->disabled); |
402 | } | 403 | } |
403 | 404 | ||
404 | static inline void | 405 | static nokprobe_inline void |
405 | stop_critical_timing(unsigned long ip, unsigned long parent_ip, int pc) | 406 | stop_critical_timing(unsigned long ip, unsigned long parent_ip, int pc) |
406 | { | 407 | { |
407 | int cpu; | 408 | int cpu; |
@@ -443,6 +444,7 @@ void start_critical_timings(void) | |||
443 | start_critical_timing(CALLER_ADDR0, CALLER_ADDR1, pc); | 444 | start_critical_timing(CALLER_ADDR0, CALLER_ADDR1, pc); |
444 | } | 445 | } |
445 | EXPORT_SYMBOL_GPL(start_critical_timings); | 446 | EXPORT_SYMBOL_GPL(start_critical_timings); |
447 | NOKPROBE_SYMBOL(start_critical_timings); | ||
446 | 448 | ||
447 | void stop_critical_timings(void) | 449 | void stop_critical_timings(void) |
448 | { | 450 | { |
@@ -452,6 +454,7 @@ void stop_critical_timings(void) | |||
452 | stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1, pc); | 454 | stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1, pc); |
453 | } | 455 | } |
454 | EXPORT_SYMBOL_GPL(stop_critical_timings); | 456 | EXPORT_SYMBOL_GPL(stop_critical_timings); |
457 | NOKPROBE_SYMBOL(stop_critical_timings); | ||
455 | 458 | ||
456 | #ifdef CONFIG_FUNCTION_TRACER | 459 | #ifdef CONFIG_FUNCTION_TRACER |
457 | static bool function_enabled; | 460 | static bool function_enabled; |
@@ -611,6 +614,7 @@ void tracer_hardirqs_on(unsigned long a0, unsigned long a1) | |||
611 | if (!preempt_trace(pc) && irq_trace()) | 614 | if (!preempt_trace(pc) && irq_trace()) |
612 | stop_critical_timing(a0, a1, pc); | 615 | stop_critical_timing(a0, a1, pc); |
613 | } | 616 | } |
617 | NOKPROBE_SYMBOL(tracer_hardirqs_on); | ||
614 | 618 | ||
615 | void tracer_hardirqs_off(unsigned long a0, unsigned long a1) | 619 | void tracer_hardirqs_off(unsigned long a0, unsigned long a1) |
616 | { | 620 | { |
@@ -619,6 +623,7 @@ void tracer_hardirqs_off(unsigned long a0, unsigned long a1) | |||
619 | if (!preempt_trace(pc) && irq_trace()) | 623 | if (!preempt_trace(pc) && irq_trace()) |
620 | start_critical_timing(a0, a1, pc); | 624 | start_critical_timing(a0, a1, pc); |
621 | } | 625 | } |
626 | NOKPROBE_SYMBOL(tracer_hardirqs_off); | ||
622 | 627 | ||
623 | static int irqsoff_tracer_init(struct trace_array *tr) | 628 | static int irqsoff_tracer_init(struct trace_array *tr) |
624 | { | 629 | { |
diff --git a/kernel/trace/trace_preemptirq.c b/kernel/trace/trace_preemptirq.c index 71f553cceb3c..4d8e99fdbbbe 100644 --- a/kernel/trace/trace_preemptirq.c +++ b/kernel/trace/trace_preemptirq.c | |||
@@ -9,6 +9,7 @@ | |||
9 | #include <linux/uaccess.h> | 9 | #include <linux/uaccess.h> |
10 | #include <linux/module.h> | 10 | #include <linux/module.h> |
11 | #include <linux/ftrace.h> | 11 | #include <linux/ftrace.h> |
12 | #include <linux/kprobes.h> | ||
12 | #include "trace.h" | 13 | #include "trace.h" |
13 | 14 | ||
14 | #define CREATE_TRACE_POINTS | 15 | #define CREATE_TRACE_POINTS |
@@ -30,6 +31,7 @@ void trace_hardirqs_on(void) | |||
30 | lockdep_hardirqs_on(CALLER_ADDR0); | 31 | lockdep_hardirqs_on(CALLER_ADDR0); |
31 | } | 32 | } |
32 | EXPORT_SYMBOL(trace_hardirqs_on); | 33 | EXPORT_SYMBOL(trace_hardirqs_on); |
34 | NOKPROBE_SYMBOL(trace_hardirqs_on); | ||
33 | 35 | ||
34 | void trace_hardirqs_off(void) | 36 | void trace_hardirqs_off(void) |
35 | { | 37 | { |
@@ -43,6 +45,7 @@ void trace_hardirqs_off(void) | |||
43 | lockdep_hardirqs_off(CALLER_ADDR0); | 45 | lockdep_hardirqs_off(CALLER_ADDR0); |
44 | } | 46 | } |
45 | EXPORT_SYMBOL(trace_hardirqs_off); | 47 | EXPORT_SYMBOL(trace_hardirqs_off); |
48 | NOKPROBE_SYMBOL(trace_hardirqs_off); | ||
46 | 49 | ||
47 | __visible void trace_hardirqs_on_caller(unsigned long caller_addr) | 50 | __visible void trace_hardirqs_on_caller(unsigned long caller_addr) |
48 | { | 51 | { |
@@ -56,6 +59,7 @@ __visible void trace_hardirqs_on_caller(unsigned long caller_addr) | |||
56 | lockdep_hardirqs_on(CALLER_ADDR0); | 59 | lockdep_hardirqs_on(CALLER_ADDR0); |
57 | } | 60 | } |
58 | EXPORT_SYMBOL(trace_hardirqs_on_caller); | 61 | EXPORT_SYMBOL(trace_hardirqs_on_caller); |
62 | NOKPROBE_SYMBOL(trace_hardirqs_on_caller); | ||
59 | 63 | ||
60 | __visible void trace_hardirqs_off_caller(unsigned long caller_addr) | 64 | __visible void trace_hardirqs_off_caller(unsigned long caller_addr) |
61 | { | 65 | { |
@@ -69,6 +73,7 @@ __visible void trace_hardirqs_off_caller(unsigned long caller_addr) | |||
69 | lockdep_hardirqs_off(CALLER_ADDR0); | 73 | lockdep_hardirqs_off(CALLER_ADDR0); |
70 | } | 74 | } |
71 | EXPORT_SYMBOL(trace_hardirqs_off_caller); | 75 | EXPORT_SYMBOL(trace_hardirqs_off_caller); |
76 | NOKPROBE_SYMBOL(trace_hardirqs_off_caller); | ||
72 | #endif /* CONFIG_TRACE_IRQFLAGS */ | 77 | #endif /* CONFIG_TRACE_IRQFLAGS */ |
73 | 78 | ||
74 | #ifdef CONFIG_TRACE_PREEMPT_TOGGLE | 79 | #ifdef CONFIG_TRACE_PREEMPT_TOGGLE |