diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2008-07-04 16:59:48 -0400 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2008-07-04 16:59:48 -0400 |
commit | 1b94bf6d310cf41041d0a6c24be85a892d443708 (patch) | |
tree | 458edfc3cee3e295e70ae3a61e358a87237dd01c /runtime/unwind.c | |
parent | 3c02e16c39aa0fd5b291faf610d9d71023392a2e (diff) | |
download | systemtap-steved-1b94bf6d310cf41041d0a6c24be85a892d443708.tar.gz systemtap-steved-1b94bf6d310cf41041d0a6c24be85a892d443708.tar.xz systemtap-steved-1b94bf6d310cf41041d0a6c24be85a892d443708.zip |
emit all symbol tables at compile time; don't do any module munging; new unwinder still disabled
Diffstat (limited to 'runtime/unwind.c')
-rw-r--r-- | runtime/unwind.c | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/runtime/unwind.c b/runtime/unwind.c index aa270cad..21ea4559 100644 --- a/runtime/unwind.c +++ b/runtime/unwind.c @@ -108,7 +108,6 @@ static void _stp_create_unwind_hdr(struct _stp_module *m) header = _stp_vmalloc(hdrSize); if (header == NULL) return; - m->allocated.unwind_hdr = 1; } header->version = 1; @@ -156,17 +155,10 @@ static void _stp_create_unwind_hdr(struct _stp_module *m) bad: dbug_unwind(1, "unwind data for %s is unacceptable. Freeing.", m->name); if (header) { - if (m->allocated.unwind_hdr) { - m->allocated.unwind_hdr = 0; - _stp_vfree(header); - } else - _stp_kfree(header); + _stp_vfree(header); } if (m->unwind_data) { - if (m->allocated.unwind_data) - _stp_vfree(m->unwind_data); - else - _stp_kfree(m->unwind_data); + _stp_vfree(m->unwind_data); m->unwind_data = NULL; m->unwind_data_len = 0; } @@ -691,7 +683,7 @@ int unwind(struct unwind_frame_info *frame) if (UNW_PC(frame) == 0) return -EINVAL; - m = _stp_get_unwind_info(pc); + m = NULL /*_stp_get_unwind_info(pc) */; if (unlikely(m == NULL)) { dbug_unwind(1, "No module found for pc=%lx", pc); return -EINVAL; @@ -940,21 +932,18 @@ int unwind(struct unwind_frame_info *frame) break; } } - read_unlock(&m->lock); dbug_unwind(1, "returning 0 (%lx)\n", UNW_PC(frame)); return 0; copy_failed: dbug_unwind(1, "_stp_read_address failed to access memory\n"); err: - read_unlock(&m->lock); return -EIO; done: /* PC was in a range convered by a module but no unwind info */ /* found for the specific PC. This seems to happen only for kretprobe */ /* trampolines and at the end of interrupt backtraces. */ - read_unlock(&m->lock); return 1; #undef CASES #undef FRAME_REG |