Re: [patch 2/3] RCU move trace defines to rcupdate_types.h (update)

Mathieu Desnoyers
2009-04-17T02:38:18Z

* Steven Rostedt (rostedt@goodmis.org) wrote:
>
> On Thu, 16 Apr 2009, Jeremy Fitzhardinge wrote:
>
> > I don't think this helps. rcupdate_types.h uses preempt_disable/enable, but
> > doesn't include linux/preempt.h for them - but someone's going to have to, so
> > you've got an implicit dependency on the user to #include the right headers in
> > advance.
>
> Would including linux/preempt.h in rcupdate_types.h be a problem?
>
> -- Steve
>

Here is the updated patch to tracepoint.h that includes preempt.h.

tracepoints : remove rcupdate.h dependency

Use the slimmer rcupdate_types.h instead of the fat rcupdate.h.

Changelog : include preempt.h from tracepoint.h.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: Jeremy Fitzhardinge <jeremy@goop.org>
CC: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
CC: Steven Rostedt <rostedt@goodmis.org>
CC: Ingo Molnar <mingo@elte.hu>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Christoph Hellwig <hch@lst.de>
---
include/linux/tracepoint.h | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

Index: linux.trees.git/include/linux/tracepoint.h
===================================================================
--- linux.trees.git.orig/include/linux/tracepoint.h 2009-04-16 20:32:27.000000000 -0400
+++ linux.trees.git/include/linux/tracepoint.h 2009-04-16 22:13:53.000000000 -0400
@@ -15,7 +15,8 @@
*/

#include <linux/types.h>
-#include <linux/rcupdate.h>
+#include <linux/rcupdate_types.h>
+#include <linux/preempt.h>

struct module;
struct tracepoint;
@@ -150,11 +151,11 @@ extern int tracepoint_get_iter_range(str
* tracepoint_synchronize_unregister must be called between the last tracepoint
* probe unregistration and the end of module exit to make sure there is no
* caller executing a probe when it is freed.
+ * Using a define rather than a static inline to make sure tracepoint.h does not
+ * depend on rcupdate.h. rcupdate.h must be included whenever
+ * tracepoint_synchronize_unregister() is used.
*/
-static inline void tracepoint_synchronize_unregister(void)
-{
- synchronize_sched();
-}
+#define tracepoint_synchronize_unregister() synchronize_sched()

#define PARAMS(args...) args