|
@@ -136,6 +136,22 @@ static inline void tracepoint_synchronize_unregister(void)
|
|
|
postrcu; \
|
|
|
} while (0)
|
|
|
|
|
|
+#ifndef MODULE
|
|
|
+#define __DECLARE_TRACE_RCU(name, proto, args, cond, data_proto, data_args) \
|
|
|
+ static inline void trace_##name##_rcuidle(proto) \
|
|
|
+ { \
|
|
|
+ if (static_key_false(&__tracepoint_##name.key)) \
|
|
|
+ __DO_TRACE(&__tracepoint_##name, \
|
|
|
+ TP_PROTO(data_proto), \
|
|
|
+ TP_ARGS(data_args), \
|
|
|
+ TP_CONDITION(cond), \
|
|
|
+ rcu_idle_exit(), \
|
|
|
+ rcu_idle_enter()); \
|
|
|
+ }
|
|
|
+#else
|
|
|
+#define __DECLARE_TRACE_RCU(name, proto, args, cond, data_proto, data_args)
|
|
|
+#endif
|
|
|
+
|
|
|
/*
|
|
|
* Make sure the alignment of the structure in the __tracepoints section will
|
|
|
* not add unwanted padding between the beginning of the section and the
|
|
@@ -151,16 +167,8 @@ static inline void tracepoint_synchronize_unregister(void)
|
|
|
TP_ARGS(data_args), \
|
|
|
TP_CONDITION(cond),,); \
|
|
|
} \
|
|
|
- static inline void trace_##name##_rcuidle(proto) \
|
|
|
- { \
|
|
|
- if (static_key_false(&__tracepoint_##name.key)) \
|
|
|
- __DO_TRACE(&__tracepoint_##name, \
|
|
|
- TP_PROTO(data_proto), \
|
|
|
- TP_ARGS(data_args), \
|
|
|
- TP_CONDITION(cond), \
|
|
|
- rcu_idle_exit(), \
|
|
|
- rcu_idle_enter()); \
|
|
|
- } \
|
|
|
+ __DECLARE_TRACE_RCU(name, PARAMS(proto), PARAMS(args), \
|
|
|
+ PARAMS(cond), PARAMS(data_proto), PARAMS(data_args)) \
|
|
|
static inline int \
|
|
|
register_trace_##name(void (*probe)(data_proto), void *data) \
|
|
|
{ \
|