diff options
Diffstat (limited to 'include/linux/tracepoint.h')
| -rw-r--r-- | include/linux/tracepoint.h | 28 | 
1 files changed, 18 insertions, 10 deletions
diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h index 802de56c41e..2f322c38bd4 100644 --- a/include/linux/tracepoint.h +++ b/include/linux/tracepoint.h @@ -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)	\  	{								\  |