On Mon, 2012-02-06 at 14:05 -0800, Josh Triplett wrote:
quoted
*/
-#define __DO_TRACE(tp, proto, args, cond) \
+#define __DO_TRACE(tp, proto, args, cond, pre, post) \
do { \
struct tracepoint_func *it_func_ptr; \
void *it_func; \@@ -123,6 +123,7 @@ static inline void tracepoint_synchroniz
if (!(cond)) \
return; \
rcu_read_lock_sched_notrace(); \
+ pre; \
it_func_ptr = rcu_dereference_sched((tp)->funcs); \
This results in calling rcu_idle_exit after rcu_read_lock; it needs to
occur before.
Bah! Good catch. The fumes of my furnace must have been sending out some
strong narcotics. Yeah yeah, that's the reason for this mistake, and
I'll stand by it!
-- Steve