]> sourceware.org Git - systemtap.git/commitdiff
Fix 'syscall.io_getevents' probe.
authorDavid Smith <dsmith@redhat.com>
Mon, 10 Jun 2013 16:06:27 +0000 (11:06 -0500)
committerDavid Smith <dsmith@redhat.com>
Mon, 10 Jun 2013 16:06:27 +0000 (11:06 -0500)
* tapset/linux/syscalls.stp: Split 'syscall.io_getevents' into
  'syscall.io_getevents' and 'compat_syscall.io_getevents', since the
  kernel function 'compat_sys_io_getevents' gets a 'struct
  compat_timespec', not a 'struct timespec'.
* testsuite/buildok/syscalls-details.stp: Add
  'compat_syscall.io_getevents' and 'compat_syscall.io_getevents.return'
  tests.

tapset/linux/syscalls.stp
testsuite/buildok/syscalls-detailed.stp

index 037c694f9ea6e227af97c84143832b9c8e28ecfe..03bdc457932421bc51e4a0830ccc073db7c1679e 100644 (file)
@@ -2004,8 +2004,7 @@ probe syscall.io_destroy.return = kernel.function("sys_io_destroy").return
 #               struct io_event __user *events,
 #               struct compat_timespec __user *timeout)
 #
-probe syscall.io_getevents = kernel.function("compat_sys_io_getevents").call ?,
-                             kernel.function("sys_io_getevents").call ?
+probe syscall.io_getevents = kernel.function("sys_io_getevents").call ?
 {
        name = "io_getevents"
        ctx_id = $ctx_id
@@ -2017,8 +2016,26 @@ probe syscall.io_getevents = kernel.function("compat_sys_io_getevents").call ?,
        argstr = sprintf("%d, %d, %d, %p, %p, %s", $ctx_id, $min_nr,
                $nr, $events, $timeout, timestr)
 }
-probe syscall.io_getevents.return = kernel.function("compat_sys_io_getevents").return ?,
-                                    kernel.function("sys_io_getevents").return ?
+probe syscall.io_getevents.return = kernel.function("sys_io_getevents").return ?
+{
+       name = "io_getevents"
+       retstr = return_str(1, $return)
+}
+probe syscall.compat_io_getevents =
+       kernel.function("compat_sys_io_getevents").call ?
+{
+       name = "io_getevents"
+       ctx_id = $ctx_id
+       min_nr = $min_nr
+       nr = $nr
+       events_uaddr = $events
+       timeout_uaddr = $timeout
+       timestr = _struct_compat_timespec_u($timeout, 1)
+       argstr = sprintf("%d, %d, %d, %p, %p, %s", $ctx_id, $min_nr,
+               $nr, $events, $timeout, timestr)
+}
+probe syscall.compat_io_getevents.return =
+       kernel.function("compat_sys_io_getevents").return ?
 {
        name = "io_getevents"
        retstr = return_str(1, $return)
index e23ad50a778573aefddd1c3297ff31f74141ed54..2b1712723df8160f05aa913d98c2f2140c14985b 100755 (executable)
@@ -877,13 +877,13 @@ probe syscall.io_destroy.return
        printf("%s, %s\n", name, retstr)
 }
 
-probe syscall.io_getevents
+probe syscall.io_getevents, syscall.compat_io_getevents
 {
        printf("%s, %s\n", name, argstr)
        printf("%d, %d, %d, %p, %p, %s\n", ctx_id, min_nr, nr, events_uaddr,
               timeout_uaddr, timestr)
 }
-probe syscall.io_getevents.return
+probe syscall.io_getevents.return, syscall.compat_io_getevents.return
 {
        printf("%s, %s\n", name, retstr)
 }
This page took 0.040041 seconds and 5 git commands to generate.