diff options
author | Steven Rostedt <srostedt@redhat.com> | 2008-11-15 15:48:29 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-11-16 01:35:37 -0500 |
commit | d51ad7ac48f991c4a8834485727efa99a691cb87 (patch) | |
tree | 7491150df5bda0b3c04e5a7f1fafdb35f3aec5c4 /kernel/trace | |
parent | 918c115410c6cc57033835b6a401e57697f9ea4f (diff) |
ftrace: replace raw_local_irq_save with local_irq_save
Impact: fix lockdep disabling itself when function tracing is enabled
The raw_local_irq_saves used in ftrace is causing problems with
lockdep. (it thinks the irq flags are out of sync and disables
itself with a warning)
The raw ops here are not needed, and the normal local_irq_save is fine.
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace')
-rw-r--r-- | kernel/trace/trace.c | 4 | ||||
-rw-r--r-- | kernel/trace/trace_selftest.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 4a904623e05d..dff4bee591b9 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
@@ -1051,7 +1051,7 @@ function_trace_call(unsigned long ip, unsigned long parent_ip) | |||
1051 | * Need to use raw, since this must be called before the | 1051 | * Need to use raw, since this must be called before the |
1052 | * recursive protection is performed. | 1052 | * recursive protection is performed. |
1053 | */ | 1053 | */ |
1054 | raw_local_irq_save(flags); | 1054 | local_irq_save(flags); |
1055 | cpu = raw_smp_processor_id(); | 1055 | cpu = raw_smp_processor_id(); |
1056 | data = tr->data[cpu]; | 1056 | data = tr->data[cpu]; |
1057 | disabled = atomic_inc_return(&data->disabled); | 1057 | disabled = atomic_inc_return(&data->disabled); |
@@ -1062,7 +1062,7 @@ function_trace_call(unsigned long ip, unsigned long parent_ip) | |||
1062 | } | 1062 | } |
1063 | 1063 | ||
1064 | atomic_dec(&data->disabled); | 1064 | atomic_dec(&data->disabled); |
1065 | raw_local_irq_restore(flags); | 1065 | local_irq_restore(flags); |
1066 | } | 1066 | } |
1067 | 1067 | ||
1068 | #ifdef CONFIG_FUNCTION_RET_TRACER | 1068 | #ifdef CONFIG_FUNCTION_RET_TRACER |
diff --git a/kernel/trace/trace_selftest.c b/kernel/trace/trace_selftest.c index 24e6e075e6d6..5cb64ea061b5 100644 --- a/kernel/trace/trace_selftest.c +++ b/kernel/trace/trace_selftest.c | |||
@@ -52,7 +52,7 @@ static int trace_test_buffer(struct trace_array *tr, unsigned long *count) | |||
52 | int cpu, ret = 0; | 52 | int cpu, ret = 0; |
53 | 53 | ||
54 | /* Don't allow flipping of max traces now */ | 54 | /* Don't allow flipping of max traces now */ |
55 | raw_local_irq_save(flags); | 55 | local_irq_save(flags); |
56 | __raw_spin_lock(&ftrace_max_lock); | 56 | __raw_spin_lock(&ftrace_max_lock); |
57 | 57 | ||
58 | cnt = ring_buffer_entries(tr->buffer); | 58 | cnt = ring_buffer_entries(tr->buffer); |
@@ -63,7 +63,7 @@ static int trace_test_buffer(struct trace_array *tr, unsigned long *count) | |||
63 | break; | 63 | break; |
64 | } | 64 | } |
65 | __raw_spin_unlock(&ftrace_max_lock); | 65 | __raw_spin_unlock(&ftrace_max_lock); |
66 | raw_local_irq_restore(flags); | 66 | local_irq_restore(flags); |
67 | 67 | ||
68 | if (count) | 68 | if (count) |
69 | *count = cnt; | 69 | *count = cnt; |