diff options
author | Dave Brolley <brolley@redhat.com> | 2009-06-03 11:44:55 -0400 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2009-06-03 11:44:55 -0400 |
commit | 0c820e5cc8eca45e94da1bfbf6091a098f180371 (patch) | |
tree | 2548e0f11d8dd6cf81df3a7ea4a4ef2ab7c8233a /runtime/transport/symbols.c | |
parent | ea9d509619ae8dc1512576bccdff2288a2c256dc (diff) | |
parent | 129de9ef18cd142e31ed509a7704d4faf0879f4c (diff) | |
download | systemtap-steved-0c820e5cc8eca45e94da1bfbf6091a098f180371.tar.gz systemtap-steved-0c820e5cc8eca45e94da1bfbf6091a098f180371.tar.xz systemtap-steved-0c820e5cc8eca45e94da1bfbf6091a098f180371.zip |
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Diffstat (limited to 'runtime/transport/symbols.c')
-rw-r--r-- | runtime/transport/symbols.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/runtime/transport/symbols.c b/runtime/transport/symbols.c index a329effe..3e6a2fb1 100644 --- a/runtime/transport/symbols.c +++ b/runtime/transport/symbols.c @@ -30,6 +30,14 @@ static void _stp_do_relocation(const char __user *buf, size_t count) dbug_sym(2, "relocate (%s %s 0x%lx)\n", msg.module, msg.reloc, (unsigned long) msg.address); + /* Detect actual kernel load address. */ + if (!strcmp ("kernel", msg.module) + && !strcmp ("_stext", msg.reloc)) { + dbug_sym(2, "found kernel _stext load address: 0x%lx\n", + (unsigned long) msg.address); + if (_stp_kretprobe_trampoline != (unsigned long) -1) + _stp_kretprobe_trampoline += (unsigned long) msg.address; + } /* Save the relocation value. XXX: While keeping the data here is fine for the kernel address space ("kernel" and "*.ko" modules), |