diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2010-02-23 20:38:56 -0500 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2010-02-23 20:38:56 -0500 |
commit | c7005ee1ba902de01a8863661a2031bfd45d3d40 (patch) | |
tree | e8a7bfa55c9afcfac71b5aafa5b54256f356c81a /tapset/powerpc/nd_syscalls.stp | |
parent | 30263a7389d5c2712536b74656193708bbc64d49 (diff) | |
parent | 10328bcf86d49e5de83c5b22890204b5874740a9 (diff) | |
download | systemtap-steved-c7005ee1ba902de01a8863661a2031bfd45d3d40.tar.gz systemtap-steved-c7005ee1ba902de01a8863661a2031bfd45d3d40.tar.xz systemtap-steved-c7005ee1ba902de01a8863661a2031bfd45d3d40.zip |
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap
* 'master' of ssh://sources.redhat.com/git/systemtap:
PR10719 part 1: Partial constant folding
Simplify null_statement construction
Fixed PR 11269 by properly handling mmap syscall 'fd' argument.
Removed rvalue operator check.
PR 10690 (partial fix). Handle '.=' operator in procfs probes.
Conflicts:
tapsets.h
Diffstat (limited to 'tapset/powerpc/nd_syscalls.stp')
-rw-r--r-- | tapset/powerpc/nd_syscalls.stp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/tapset/powerpc/nd_syscalls.stp b/tapset/powerpc/nd_syscalls.stp index 46267507..0723c393 100644 --- a/tapset/powerpc/nd_syscalls.stp +++ b/tapset/powerpc/nd_syscalls.stp @@ -637,19 +637,23 @@ probe nd_syscall.mmap = kprobe.function("sys_mmap") ? // len = $len // prot = $prot // flags = $flags - // fd = $fd + // fd = __int32($fd) // offset = $offset // argstr = sprintf("%p, %d, %s, %s, %d, %d", $addr, $len, - // _mprotect_prot_str($prot), _mmap_flags($flags), $fd, $offset) + // _mprotect_prot_str($prot), _mmap_flags($flags), + // __int32($fd), $offset) asmlinkage() start = ulong_arg(1) len = ulong_arg(2) prot = ulong_arg(3) flags = ulong_arg(4) - fd = ulong_arg(5) + # Although the kernel gets an unsigned long fd, on the + # user-side it is a signed int. Fix this. + fd = int_arg(5) offset = ulong_arg(6) argstr = sprintf("%p, %d, %s, %s, %d, %d", start, len, - _mprotect_prot_str(prot), _mmap_flags(flags), fd, offset) + _mprotect_prot_str(prot), _mmap_flags(flags), + fd, offset) } probe nd_syscall.mmap.return = kprobe.function("sys_mmap").return ? { @@ -673,7 +677,7 @@ probe nd_syscall.mmap2 = kprobe.function("sys_mmap2") ?, // length = $len // prot = $prot // flags = $flags - // fd = $fd + // fd = __int32($fd) // pgoffset = $pgoff // argstr = sprintf("%p, %d, %s, %s, %d, %d", $addr, // $len, _mprotect_prot_str($prot), _mmap_flags($flags), @@ -683,7 +687,9 @@ probe nd_syscall.mmap2 = kprobe.function("sys_mmap2") ?, length = ulong_arg(2) prot = ulong_arg(3) flags = ulong_arg(4) - fd = ulong_arg(5) + # Although the kernel gets an unsigned long fd, on the + # user-side it is a signed int. Fix this. + fd = int_arg(5) pgoffset = ulong_arg(6) argstr = sprintf("%p, %d, %s, %s, %d, %d", start, length, _mprotect_prot_str(prot), _mmap_flags(flags), |