aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trace/trace.c')
-rw-r--r--kernel/trace/trace.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index e4c40c868d67..3e7bf5eb9007 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -904,8 +904,7 @@ function_trace_call(unsigned long ip, unsigned long parent_ip)
904 return; 904 return;
905 905
906 pc = preempt_count(); 906 pc = preempt_count();
907 resched = need_resched(); 907 resched = ftrace_preempt_disable();
908 preempt_disable_notrace();
909 local_save_flags(flags); 908 local_save_flags(flags);
910 cpu = raw_smp_processor_id(); 909 cpu = raw_smp_processor_id();
911 data = tr->data[cpu]; 910 data = tr->data[cpu];
@@ -915,10 +914,7 @@ function_trace_call(unsigned long ip, unsigned long parent_ip)
915 trace_function(tr, data, ip, parent_ip, flags, pc); 914 trace_function(tr, data, ip, parent_ip, flags, pc);
916 915
917 atomic_dec(&data->disabled); 916 atomic_dec(&data->disabled);
918 if (resched) 917 ftrace_preempt_enable(resched);
919 preempt_enable_no_resched_notrace();
920 else
921 preempt_enable_notrace();
922} 918}
923 919
924static struct ftrace_ops trace_ops __read_mostly = 920static struct ftrace_ops trace_ops __read_mostly =