|
@@ -109,8 +109,12 @@ static int func_prolog_dec(struct trace_array *tr,
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
local_save_flags(*flags);
|
|
local_save_flags(*flags);
|
|
- /* slight chance to get a false positive on tracing_cpu */
|
|
|
|
- if (!irqs_disabled_flags(*flags))
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Slight chance to get a false positive on tracing_cpu,
|
|
|
|
+ * although I'm starting to think there isn't a chance.
|
|
|
|
+ * Leave this for now just to be paranoid.
|
|
|
|
+ */
|
|
|
|
+ if (!irqs_disabled_flags(*flags) && !preempt_count())
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
*data = per_cpu_ptr(tr->trace_buffer.data, cpu);
|
|
*data = per_cpu_ptr(tr->trace_buffer.data, cpu);
|