diff options
author | Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> | 2008-11-14 17:47:41 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-11-16 03:01:30 -0500 |
commit | 2504ea5edfebb14133b8571c20785cdc077e07d2 (patch) | |
tree | a3dd7de2b0f78004e6b579fca3362c676c2c0298 | |
parent | a0bca6a59ebc052751eed6e3b182c153495672d8 (diff) |
tracepoints: samples, fix teardown
Impact: fix a bug in sample tracepoints
Need a tracepoint_synchronize_unregister() before the end of exit() to
make sure every probe callers have exited the non preemptible section
and thus are not executing the probe code anymore.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | samples/tracepoints/tracepoint-probe-sample.c | 1 | ||||
-rw-r--r-- | samples/tracepoints/tracepoint-probe-sample2.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/samples/tracepoints/tracepoint-probe-sample.c b/samples/tracepoints/tracepoint-probe-sample.c index 55abfdda4bd4..e3a964889dc7 100644 --- a/samples/tracepoints/tracepoint-probe-sample.c +++ b/samples/tracepoints/tracepoint-probe-sample.c | |||
@@ -46,6 +46,7 @@ void __exit tp_sample_trace_exit(void) | |||
46 | { | 46 | { |
47 | unregister_trace_subsys_eventb(probe_subsys_eventb); | 47 | unregister_trace_subsys_eventb(probe_subsys_eventb); |
48 | unregister_trace_subsys_event(probe_subsys_event); | 48 | unregister_trace_subsys_event(probe_subsys_event); |
49 | tracepoint_synchronize_unregister(); | ||
49 | } | 50 | } |
50 | 51 | ||
51 | module_exit(tp_sample_trace_exit); | 52 | module_exit(tp_sample_trace_exit); |
diff --git a/samples/tracepoints/tracepoint-probe-sample2.c b/samples/tracepoints/tracepoint-probe-sample2.c index 5e9fcf4afffe..685a5acb4562 100644 --- a/samples/tracepoints/tracepoint-probe-sample2.c +++ b/samples/tracepoints/tracepoint-probe-sample2.c | |||
@@ -33,6 +33,7 @@ module_init(tp_sample_trace_init); | |||
33 | void __exit tp_sample_trace_exit(void) | 33 | void __exit tp_sample_trace_exit(void) |
34 | { | 34 | { |
35 | unregister_trace_subsys_event(probe_subsys_event); | 35 | unregister_trace_subsys_event(probe_subsys_event); |
36 | tracepoint_synchronize_unregister(); | ||
36 | } | 37 | } |
37 | 38 | ||
38 | module_exit(tp_sample_trace_exit); | 39 | module_exit(tp_sample_trace_exit); |