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 |
