tracing: Have preempt(irqs)off trace preempt disabled functions
[pandora-kernel.git] / kernel / trace / trace_irqsoff.c
index 1626e1a..76fb950 100644 (file)
@@ -117,8 +117,12 @@ static int func_prolog_dec(struct trace_array *tr,
                return 0;
 
        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;
 
        *data = tr->data[cpu];