]> sourceware.org Git - systemtap.git/commit
PR14172: Fix for kernels without VM_EXECUTABLE
authorJosh Stone <jistone@redhat.com>
Fri, 12 Oct 2012 21:45:55 +0000 (14:45 -0700)
committerJosh Stone <jistone@redhat.com>
Fri, 12 Oct 2012 22:02:59 +0000 (15:02 -0700)
commit529c7eaed7360776b596af31c86d4e4712a1a3db
tree580c74462f3c80f0afe11344df920cb6493434e1
parent9892f8aaca7a0c910b9c44a90ff1a49e69dda505
PR14172: Fix for kernels without VM_EXECUTABLE

We were using VM_EXECUTABLE in two ways:

1) In task_finder for locating the process executable among all the
vmas.  Since around 2.6.26 there is also mm->exe_file, which will serve
this purpose just fine.

2) In uprobes to avoid relocation offset for semaphores in ET_EXEC
files.  This is actually incorrect, but harmless, because the callback
path for ET_EXEC targets already sets relocation=offset=0 anyway.  So we
can just remove the special case for VM_EXECUTABLE altogether.

* runtime/task_finder_vma.c (stap_find_exe_file): New, locate the
  process executable either by VM_EXECUTABLE or mm->exe_file.
* runtime/linux/task_finder.c (__stp_get_mm_path): Use stap_find_exe_file.
* runtime/linux/task_finder2.c (__stp_get_mm_path): Ditto.
* runtime/linux/uprobes-common.c (stap_uprobe_change_plus): Don't
  special case for VM_EXECUTABLE (and add a comment why).
* runtime/linux/uprobes-inode.c (stapiu_change_plus): Ditto.
  (stapiu_get_task_inode): Use stap_find_exe_file.
runtime/linux/runtime.h
runtime/linux/task_finder.c
runtime/linux/task_finder2.c
runtime/linux/uprobes-common.c
runtime/linux/uprobes-inode.c
runtime/task_finder_vma.c
This page took 0.029121 seconds and 5 git commands to generate.