Re: [PATCH -rt] wrong usage of smp_processor_id()

From: Steven Rostedt
Date: Thu May 03 2007 - 16:33:28 EST


Daniel Walker wrote:

Index: linux-2.6.21/kernel/latency_trace.c
===================================================================
--- linux-2.6.21.orig/kernel/latency_trace.c
+++ linux-2.6.21/kernel/latency_trace.c
@@ -105,7 +105,7 @@ static inline int DEBUG_WARN_ON(int cond
#ifdef CONFIG_CRITICAL_IRQSOFF_TIMING
# ifdef CONFIG_CRITICAL_PREEMPT_TIMING
static DEFINE_PER_CPU(int, trace_cpu_idle);
-# define irqs_off_preempt_count() (!__get_cpu_var(trace_cpu_idle) && preempt_count())
+# define irqs_off_preempt_count() (preempt_count() && !__get_cpu_var(trace_cpu_idle))
# else
# define irqs_off_preempt_count() 0
# endif


Isn't it a generic problem? It doesn't look specific to your change
unless you made some changes to entry.S .


See: http://lkml.org/lkml/2007/4/23/183

Specifically:


#ifdef CONFIG_CRITICAL_IRQSOFF_TIMING
# ifdef CONFIG_CRITICAL_PREEMPT_TIMING
-# define irqs_off_preempt_count() preempt_count()
+ static DEFINE_PER_CPU(int, trace_cpu_idle);
+# define irqs_off_preempt_count() (!__get_cpu_var(trace_cpu_idle) && preempt_count())
# else
# define irqs_off_preempt_count() 0
# endif
@@ -2153,6 +2154,20 @@ void notrace unmask_preempt_count(unsign
}
EXPORT_SYMBOL(unmask_preempt_count);


-- Steve
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/