aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_irqsoff.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trace/trace_irqsoff.c')
-rw-r--r--kernel/trace/trace_irqsoff.c9
1 files changed, 7 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
368static inline void 369static nokprobe_inline void
369start_critical_timing(unsigned long ip, unsigned long parent_ip, int pc) 370start_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
404static inline void 405static nokprobe_inline void
405stop_critical_timing(unsigned long ip, unsigned long parent_ip, int pc) 406stop_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}
445EXPORT_SYMBOL_GPL(start_critical_timings); 446EXPORT_SYMBOL_GPL(start_critical_timings);
447NOKPROBE_SYMBOL(start_critical_timings);
446 448
447void stop_critical_timings(void) 449void 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}
454EXPORT_SYMBOL_GPL(stop_critical_timings); 456EXPORT_SYMBOL_GPL(stop_critical_timings);
457NOKPROBE_SYMBOL(stop_critical_timings);
455 458
456#ifdef CONFIG_FUNCTION_TRACER 459#ifdef CONFIG_FUNCTION_TRACER
457static bool function_enabled; 460static 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}
617NOKPROBE_SYMBOL(tracer_hardirqs_on);
614 618
615void tracer_hardirqs_off(unsigned long a0, unsigned long a1) 619void 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}
626NOKPROBE_SYMBOL(tracer_hardirqs_off);
622 627
623static int irqsoff_tracer_init(struct trace_array *tr) 628static int irqsoff_tracer_init(struct trace_array *tr)
624{ 629{