diff options
author | Josh Stone <jistone@redhat.com> | 2009-02-23 15:10:13 -0800 |
---|---|---|
committer | Josh Stone <jistone@redhat.com> | 2009-02-23 15:10:13 -0800 |
commit | 7b6e55916c072b5e2496635a8c43711d7cba821d (patch) | |
tree | 7fb433132a0b310637ccfbb8d6d7f7a96f5579b0 /runtime/time.c | |
parent | 9e67aff9f4c269e0a56524c3f2fafaf8e038bda7 (diff) | |
parent | bf2a0399419306bf26cd57236822c51be893dfb0 (diff) | |
download | systemtap-steved-7b6e55916c072b5e2496635a8c43711d7cba821d.tar.gz systemtap-steved-7b6e55916c072b5e2496635a8c43711d7cba821d.tar.xz systemtap-steved-7b6e55916c072b5e2496635a8c43711d7cba821d.zip |
Merge branch 'gtod'
Diffstat (limited to 'runtime/time.c')
-rw-r--r-- | runtime/time.c | 8 |
1 files changed, 7 insertions, 1 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()); |