summaryrefslogtreecommitdiffstats
path: root/tapset/powerpc/nd_syscalls.stp
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2010-02-23 20:38:56 -0500
committerFrank Ch. Eigler <fche@elastic.org>2010-02-23 20:38:56 -0500
commitc7005ee1ba902de01a8863661a2031bfd45d3d40 (patch)
treee8a7bfa55c9afcfac71b5aafa5b54256f356c81a /tapset/powerpc/nd_syscalls.stp
parent30263a7389d5c2712536b74656193708bbc64d49 (diff)
parent10328bcf86d49e5de83c5b22890204b5874740a9 (diff)
downloadsystemtap-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.stp18
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),