diff options
author | Eugeniy Meshcheryakov <eugen@debian.org> | 2009-02-24 15:48:31 +0100 |
---|---|---|
committer | Eugeniy Meshcheryakov <eugen@debian.org> | 2009-02-24 15:48:31 +0100 |
commit | ab421f562d14d1322b9197d9e23fcfbaf809fba3 (patch) | |
tree | a75fe2b3174ea14dd2538c075de13db898eb3fdf /runtime | |
parent | 4176d5b1f4bf25adb8e44eaae9e6ab1de5a2c806 (diff) | |
parent | cfba34fccd99924a47622c5082706867f0a34b12 (diff) | |
download | systemtap-steved-ab421f562d14d1322b9197d9e23fcfbaf809fba3.tar.gz systemtap-steved-ab421f562d14d1322b9197d9e23fcfbaf809fba3.tar.xz systemtap-steved-ab421f562d14d1322b9197d9e23fcfbaf809fba3.zip |
Merge branch 'master' of git+ssh://sources.redhat.com/git/systemtap
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/time.c | 8 | ||||
-rw-r--r-- | runtime/transport/transport.c | 6 |
2 files changed, 7 insertions, 7 deletions
diff --git a/runtime/time.c b/runtime/time.c index ad7cef9d..58c23e57 100644 --- a/runtime/time.c +++ b/runtime/time.c @@ -223,6 +223,7 @@ _stp_kill_time(void) #endif _stp_free_percpu(stp_time); + stp_time = NULL; } } @@ -232,6 +233,8 @@ _stp_init_time(void) { int ret = 0; + _stp_kill_time(); + stp_time = _stp_alloc_percpu(sizeof(stp_time_t)); if (unlikely(stp_time == 0)) return -1; @@ -263,7 +266,7 @@ _stp_init_time(void) } } #endif - if (ret) + if (ret) _stp_kill_time(); return ret; } @@ -278,6 +281,9 @@ _stp_gettimeofday_ns(void) stp_time_t *time; int i = 0; + if (!stp_time) + return -1; + preempt_disable(); time = per_cpu_ptr(stp_time, smp_processor_id()); diff --git a/runtime/transport/transport.c b/runtime/transport/transport.c index 0755781e..7fcebd42 100644 --- a/runtime/transport/transport.c +++ b/runtime/transport/transport.c @@ -188,7 +188,6 @@ static void _stp_transport_close() _stp_unregister_ctl_channel(); if (_stp_utt) utt_trace_remove(_stp_utt); - _stp_kill_time(); /* Go to a beach. Drink a beer. */ _stp_print_cleanup(); /* free print buffers */ _stp_mem_debug_done(); dbug_trans(1, "---- CLOSED ----\n"); @@ -244,10 +243,6 @@ static int _stp_transport_init(void) dbug_trans(1, "Using %d subbufs of size %d\n", _stp_nsubbufs, _stp_subbuf_size); } - /* initialize timer code */ - if (_stp_init_time()) - return -1; - #if !defined (STP_OLD_TRANSPORT) || defined (STP_BULKMODE) /* open utt (relayfs) channel to send data to userspace */ _stp_utt = _stp_utt_open(); @@ -286,7 +281,6 @@ err1: if (_stp_utt) utt_trace_remove(_stp_utt); err0: - _stp_kill_time(); return -1; } |