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 09:01:30 +0100 |
commit | 2504ea5edfebb14133b8571c20785cdc077e07d2 (patch) | |
tree | a3dd7de2b0f78004e6b579fca3362c676c2c0298 /samples/tracepoints | |
parent | a0bca6a59ebc052751eed6e3b182c153495672d8 (diff) | |
download | kernel_goldelico_gta04-2504ea5edfebb14133b8571c20785cdc077e07d2.zip kernel_goldelico_gta04-2504ea5edfebb14133b8571c20785cdc077e07d2.tar.gz kernel_goldelico_gta04-2504ea5edfebb14133b8571c20785cdc077e07d2.tar.bz2 |
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>
Diffstat (limited to 'samples/tracepoints')
-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 55abfdd..e3a9648 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) { unregister_trace_subsys_eventb(probe_subsys_eventb); unregister_trace_subsys_event(probe_subsys_event); + tracepoint_synchronize_unregister(); } module_exit(tp_sample_trace_exit); diff --git a/samples/tracepoints/tracepoint-probe-sample2.c b/samples/tracepoints/tracepoint-probe-sample2.c index 5e9fcf4..685a5ac 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); void __exit tp_sample_trace_exit(void) { unregister_trace_subsys_event(probe_subsys_event); + tracepoint_synchronize_unregister(); } module_exit(tp_sample_trace_exit); |