]> sourceware.org Git - systemtap.git/commitdiff
PR16207 partial fix: Fix the 'trunc' [nd_]syscall.exp tests on rawhide.
authorDavid Smith <dsmith@redhat.com>
Thu, 19 Dec 2013 19:57:37 +0000 (13:57 -0600)
committerDavid Smith <dsmith@redhat.com>
Thu, 19 Dec 2013 19:57:37 +0000 (13:57 -0600)
* tapset/linux/syscalls.stp: Add 'compat_sys_ftruncate" support to
  syscall.ftruncate probe.
* tapset/linux/nd_syscalls.stp: Ditto.
* tapset/linux/syscalls2.stp: Add 'compat_sys_truncate" support to
  syscall.truncate probe.
* tapset/linux/nd_syscalls2.stp: Ditto.

tapset/linux/nd_syscalls.stp
tapset/linux/nd_syscalls2.stp
tapset/linux/syscalls.stp
tapset/linux/syscalls2.stp

index f370d0cff0596031cf44601843e1ad75538294fb..c5176cadae35d50b3f57bd0c1b11b6f46c41955d 100644 (file)
@@ -1639,17 +1639,32 @@ probe nd_syscall.fsync.return = kprobe.function("sys_fsync").return ?
 }
 # ftruncate __________________________________________________
 # long sys_ftruncate(unsigned int fd, unsigned long length)
-probe nd_syscall.ftruncate = kprobe.function("sys_ftruncate") ?
+# COMPAT_SYSCALL_DEFINE2(ftruncate, unsigned int, fd, compat_ulong_t, length)
+#
+probe nd_syscall.ftruncate = __nd_syscall.ftruncate,
+                            __nd_syscall.compat_ftruncate ?
 {
        name = "ftruncate"
        // fd = $fd
        // length = $length
        asmlinkage()
        fd = int_arg(1)
-       length = ulong_arg(2)
        argstr = sprintf("%d, %d", fd, length)
 }
-probe nd_syscall.ftruncate.return = kprobe.function("sys_ftruncate").return ?
+probe __nd_syscall.ftruncate = kprobe.function("sys_ftruncate").call
+{
+       asmlinkage()
+       length = ulong_arg(2)
+}
+probe __nd_syscall.compat_ftruncate =
+       kprobe.function("compat_sys_ftruncate").call
+{
+       asmlinkage()
+       length = uint_arg(2)
+}
+probe nd_syscall.ftruncate.return =
+       kprobe.function("sys_ftruncate").return,
+       kprobe.function("compat_sys_ftruncate").return ?
 {
        name = "ftruncate"
        retstr = returnstr(1)
index e9ed66831245c681109188576030585111681381..87f966062ef2cac0a3105b4916291cc3f2634b92 100644 (file)
@@ -4076,8 +4076,12 @@ probe nd_syscall.tkill.return = kprobe.function("sys_tkill").return ?
 #
 # sys_truncate(const char __user * path, unsigned long length)
 # sys_truncate64(const char __user * path, loff_t length)
+# COMPAT_SYSCALL_DEFINE2(truncate, const char __user *, path,
+#                       compat_off_t, length)
 #
-probe nd_syscall.truncate = __nd_syscall.truncate?, __nd_syscall.truncate64?
+probe nd_syscall.truncate = __nd_syscall.truncate ?,
+                           __nd_syscall.truncate64 ?,
+                           __nd_syscall.compat_truncate ?
 {
        name = "truncate"
        // path_uaddr = $path
@@ -4099,8 +4103,15 @@ probe __nd_syscall.truncate64 = kprobe.function("sys_truncate64")
        asmlinkage()
        length = longlong_arg(2)
 }
-probe nd_syscall.truncate.return = kprobe.function("sys_truncate").return ?,
-                                   kprobe.function("sys_truncate64").return ?
+probe __nd_syscall.compat_truncate = kprobe.function("compat_sys_truncate")
+{
+       asmlinkage()
+       length = int_arg(2)
+}
+probe nd_syscall.truncate.return =
+       kprobe.function("sys_truncate").return ?,
+       kprobe.function("sys_truncate64").return ?,
+       kprobe.function("compat_sys_truncate").return ?
 {
        name = "truncate"
        retstr = returnstr(1)
index 38d3ee72dee61d84ab7b5cad68d33b217b863d69..7ec24ef801b8e59f023ca2a4ee38300825fd7cb4 100644 (file)
@@ -1303,14 +1303,19 @@ probe syscall.fsync.return = kernel.function("sys_fsync").return
 }
 # ftruncate __________________________________________________
 # long sys_ftruncate(unsigned int fd, unsigned long length)
-probe syscall.ftruncate = kernel.function("sys_ftruncate").call
+# COMPAT_SYSCALL_DEFINE2(ftruncate, unsigned int, fd, compat_ulong_t, length)
+#
+probe syscall.ftruncate = kernel.function("sys_ftruncate").call,
+                         kernel.function("compat_sys_ftruncate").call ?
 {
        name = "ftruncate"
        fd = $fd
        length = $length
        argstr = sprintf("%d, %d", fd, length)
 }
-probe syscall.ftruncate.return = kernel.function("sys_ftruncate").return
+probe syscall.ftruncate.return =
+       kernel.function("sys_ftruncate").return,
+       kernel.function("compat_sys_ftruncate").return ?
 {
        name = "ftruncate"
        retstr = return_str(1, $return)
index 72a0909091a9643f2a55712449c6e8b8df4042f0..3f9a5278c1dac028fa3c8d636ddd147662fa780b 100644 (file)
@@ -3367,9 +3367,12 @@ probe syscall.tkill.return = kernel.function("sys_tkill").return
 #
 # sys_truncate(const char __user * path, unsigned long length)
 # sys_truncate64(const char __user * path, loff_t length)
+# COMPAT_SYSCALL_DEFINE2(truncate, const char __user *, path,
+#                       compat_off_t, length)
 #
 probe syscall.truncate = kernel.function("sys_truncate").call ?,
-                         kernel.function("sys_truncate64").call ?
+                         kernel.function("sys_truncate64").call ?,
+                        kernel.function("compat_sys_truncate").call ?
 {
        name = "truncate"
        path_uaddr = $path
@@ -3378,7 +3381,8 @@ probe syscall.truncate = kernel.function("sys_truncate").call ?,
        argstr = sprintf("%s, %d", user_string_quoted($path), $length)
 }
 probe syscall.truncate.return = kernel.function("sys_truncate").return ?,
-                                kernel.function("sys_truncate64").return ?
+                                kernel.function("sys_truncate64").return ?,
+                               kernel.function("compat_sys_truncate").return ?
 {
        name = "truncate"
        retstr = return_str(1, $return)
This page took 0.041736 seconds and 5 git commands to generate.