summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/ChangeLog5
-rw-r--r--runtime/task_finder.c12
2 files changed, 13 insertions, 4 deletions
diff --git a/runtime/ChangeLog b/runtime/ChangeLog
index fb92dccc..1ad5aa20 100644
--- a/runtime/ChangeLog
+++ b/runtime/ChangeLog
@@ -1,5 +1,10 @@
2008-06-23 David Smith <dsmith@redhat.com>
+ * task_finder.c (__stp_utrace_task_finder_target_quiesce): Fixed
+ vm_callback offset by shifting it left PAGE_SHIFT bits.
+ (__stp_target_call_vm_callback): Ditto.
+ (__stp_utrace_task_finder_target_syscall_exit): Ditto.
+
* task_finder.c (__stp_utrace_task_finder_report_exec): Handles
relative exec paths correctly.
diff --git a/runtime/task_finder.c b/runtime/task_finder.c
index 71b11569..07610864 100644
--- a/runtime/task_finder.c
+++ b/runtime/task_finder.c
@@ -586,7 +586,8 @@ __stp_utrace_task_finder_target_quiesce(struct utrace_attached_engine *engine,
rc = tgt->vm_callback(tsk, 1, mmpath,
vma->vm_start,
vma->vm_end,
- vma->vm_pgoff);
+ (vma->vm_pgoff
+ << PAGE_SHIFT));
if (rc != 0) {
_stp_error("vm callback for %d failed: %d",
(int)tsk->pid, rc);
@@ -709,7 +710,8 @@ __stp_target_call_vm_callback(struct stap_task_finder_target *tgt,
}
else {
rc = tgt->vm_callback(tsk, 1, mmpath, vma->vm_start,
- vma->vm_end, vma->vm_pgoff);
+ vma->vm_end,
+ (vma->vm_pgoff << PAGE_SHIFT));
if (rc != 0) {
_stp_error("vm callback for %d failed: %d",
(int)tsk->pid, rc);
@@ -819,7 +821,8 @@ __stp_utrace_task_finder_target_syscall_exit(struct utrace_attached_engine *engi
rc = tgt->vm_callback(tsk, 0, NULL,
entry->vm_start,
entry->vm_end,
- entry->vm_pgoff);
+ (entry->vm_pgoff
+ << PAGE_SHIFT));
if (rc != 0) {
_stp_error("vm callback for %d failed: %d",
(int)tsk->pid, rc);
@@ -852,7 +855,8 @@ __stp_utrace_task_finder_target_syscall_exit(struct utrace_attached_engine *engi
rc = tgt->vm_callback(tsk, 0, NULL,
entry->vm_start,
entry->vm_end,
- entry->vm_pgoff);
+ (entry->vm_pgoff
+ << PAGE_SHIFT));
if (rc != 0) {
_stp_error("vm callback for %d failed: %d",
(int)tsk->pid, rc);