summaryrefslogtreecommitdiffstats
path: root/tapset
diff options
context:
space:
mode:
Diffstat (limited to 'tapset')
-rw-r--r--tapset/context.stp6
-rw-r--r--tapset/conversions.stp5
-rw-r--r--tapset/s390x/syscalls.stp24
3 files changed, 24 insertions, 11 deletions
diff --git a/tapset/context.stp b/tapset/context.stp
index 6fad3740..fcb60201 100644
--- a/tapset/context.stp
+++ b/tapset/context.stp
@@ -14,6 +14,12 @@
%{
#include <asm/processor.h>
+
+#if defined(__powerpc64__)
+#if !defined(task_pt_regs)
+#define task_pt_regs(tsk) ((struct pt_regs *)(tsk)->thread.regs)
+#endif
+#endif
%}
/**
diff --git a/tapset/conversions.stp b/tapset/conversions.stp
index 70725e9d..31b16821 100644
--- a/tapset/conversions.stp
+++ b/tapset/conversions.stp
@@ -120,6 +120,8 @@ function user_string_n2:string (addr:long, n:long, err_msg:string) %{ /* pure */
(char __user *) (uintptr_t) THIS->addr,
len) < 0)
strlcpy(THIS->__retvalue, THIS->err_msg, MAXSTRINGLEN);
+ else
+ THIS->__retvalue[len - 1] = '\0';
%}
function user_string_n_warn:string (addr:long, n:long) %{ /* pure */
@@ -137,7 +139,8 @@ function user_string_n_warn:string (addr:long, n:long) %{ /* pure */
(void *) (uintptr_t) THIS->addr);
_stp_warn(CONTEXT->error_buffer);
strlcpy (THIS->__retvalue, "<unknown>", MAXSTRINGLEN);
- }
+ } else
+ THIS->__retvalue[len - 1] = '\0';
%}
function user_string_n_quoted:string (addr:long, n:long) %{ /* pure */
diff --git a/tapset/s390x/syscalls.stp b/tapset/s390x/syscalls.stp
index 07cb0577..17988ace 100644
--- a/tapset/s390x/syscalls.stp
+++ b/tapset/s390x/syscalls.stp
@@ -45,19 +45,21 @@ probe syscall.ipc.return = kernel.function("sys_ipc").return ? {
# long old_mmap(struct mmap_arg_struct __user *arg)
# long old32_mmap(struct mmap_arg_struct_emu31 __user *arg)
#
-probe syscall.mmap = kernel.function("old_mmap"),
- kernel.function("old32_mmap")
+probe syscall.mmap = kernel.function("old_mmap") ?,
+ kernel.function("old32_mmap") ?,
+ kernel.function("SyS_s390_old_mmap") ?
{
name = "mmap"
- if (probefunc() == "old_mmap")
+ if ((probefunc() == "old_mmap") || (probefunc() == "SyS_s390_old_mmap"))
argstr = get_mmap_args($arg)
else
argstr = get_32mmap_args($arg)
}
-probe syscall.mmap.return = kernel.function("old_mmap").return,
- kernel.function("old32_mmap").return
+probe syscall.mmap.return = kernel.function("old_mmap").return ?,
+ kernel.function("old32_mmap").return ?,
+ kernel.function("SyS_s390_old_mmap").return ?
{
name = "mmap"
retstr = returnstr(2)
@@ -69,19 +71,21 @@ probe syscall.mmap.return = kernel.function("old_mmap").return,
# long sys_mmap2(struct mmap_arg_struct __user *arg)
# long sys32_mmap2(struct mmap_arg_struct_emu31 __user *arg)
#
-probe syscall.mmap2 = kernel.function("sys_mmap2"),
- kernel.function("sys32_mmap2")
+probe syscall.mmap2 = kernel.function("sys_mmap2") ?,
+ kernel.function("sys32_mmap2") ?,
+ kernel.function("SyS_mmap2") ?
{
name = "mmap2"
- if (probefunc() == "sys_mmap2")
+ if ((probefunc() == "sys_mmap2") || (probefunc() == "SyS_mmap2"))
argstr = get_mmap_args($arg)
else
argstr = get_32mmap_args($arg)
}
-probe syscall.mmap2.return = kernel.function("sys_mmap2").return,
- kernel.function("sys32_mmap2").return
+probe syscall.mmap2.return = kernel.function("sys_mmap2").return ?,
+ kernel.function("sys32_mmap2").return ?,
+ kernel.function("SyS_mmap2").return ?
{
name = "mmap2"
retstr = returnstr(2)