From: Mark Wielaard Date: Sun, 30 Sep 2012 12:11:07 +0000 (+0200) Subject: nfsservctl syscall was removed in kernel 3.0/2.6.40. X-Git-Tag: release-2.0~68 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=57b72e7483c7b2915541d5aa24424f58d949e8a0;p=systemtap.git nfsservctl syscall was removed in kernel 3.0/2.6.40. See kernel commits 49b2868 and d4d7b2a. This used to resolve partly before because when CONFIG_COMPAT = "y" there would still be a compat_sys_nfsservctl. But that was slightly bogus because without CONFIG_NFSD that would just be: long asmlinkage compat_sys_nfsservctl(int cmd, void *notused, void *notused2) { return sys_ni_syscall(); } --- diff --git a/tapset/linux/aux_syscalls.stp b/tapset/linux/aux_syscalls.stp index 55f476247..957de73a4 100644 --- a/tapset/linux/aux_syscalls.stp +++ b/tapset/linux/aux_syscalls.stp @@ -553,7 +553,9 @@ function _itimer_which_str(which) { /* * Return the command name for nfsservctl() + * nfsservctl was removed in kernel 3.0/2.6.40. */ +%( kernel_v < "2.6.40" && CONFIG_NFSD == "[ym]" %? function _nfsctl_cmd_str(cmd) { if(cmd == 0) return "NFSCTL_SVC" if(cmd == 1) return "NFSCTL_ADDCLIENT" @@ -566,6 +568,7 @@ function _nfsctl_cmd_str(cmd) { if(cmd == 8) return "NFSCTL_GETFS" return sprintf("UNRECOGNIZED VALUE: %d", cmd) } +%) /* * Return the symbolic string representation diff --git a/tapset/linux/nd_syscalls2.stp b/tapset/linux/nd_syscalls2.stp index 42a9ccf4d..f193f824a 100644 --- a/tapset/linux/nd_syscalls2.stp +++ b/tapset/linux/nd_syscalls2.stp @@ -67,6 +67,8 @@ probe nd_syscall.compat_nanosleep.return = kprobe.function("compat_sys_nanosleep # long compat_sys_nfsservctl(int cmd, struct compat_nfsctl_arg __user *arg, # union compat_nfsctl_res __user *res) # +# nfsservctl was removed in kernel 3.0/2.6.40. +%( kernel_v < "2.6.40" && CONFIG_NFSD == "[ym]" %? probe nd_syscall.nfsservctl = kprobe.function("sys_nfsservctl") ?, kprobe.function("compat_sys_nfsservctl") ? { @@ -87,6 +89,7 @@ probe nd_syscall.nfsservctl.return = kprobe.function("sys_nfsservctl").return ?, name = "nfsservctl" retstr = returnstr(1) } +%) # nice _______________________________________________________ # long sys_nice(int increment) diff --git a/tapset/linux/syscalls2.stp b/tapset/linux/syscalls2.stp index f3ae2117c..63faae4ee 100644 --- a/tapset/linux/syscalls2.stp +++ b/tapset/linux/syscalls2.stp @@ -59,7 +59,8 @@ probe syscall.compat_nanosleep.return = kernel.function("compat_sys_nanosleep"). # long compat_sys_nfsservctl(int cmd, struct compat_nfsctl_arg __user *arg, # union compat_nfsctl_res __user *res) # -%( CONFIG_NFSD == "[ym]" || CONFIG_COMPAT == "y" %? +# nfsservctl was removed in kernel 3.0/2.6.40. +%( kernel_v < "2.6.40" && CONFIG_NFSD == "[ym]" %? probe syscall.nfsservctl = kernel.function("sys_nfsservctl").call ?, kernel.function("compat_sys_nfsservctl").call ? { diff --git a/testsuite/buildok/aux_syscalls-embedded.stp b/testsuite/buildok/aux_syscalls-embedded.stp index ffefc1417..1fb5114b3 100755 --- a/testsuite/buildok/aux_syscalls-embedded.stp +++ b/testsuite/buildok/aux_syscalls-embedded.stp @@ -26,7 +26,12 @@ probe begin { print (_sigprocmask_how_str(0)) print (_itimer_which_str(0)) + +# nfsservctl was removed in kernel 3.0/2.6.40. +%( kernel_v < "2.6.40" && CONFIG_NFSD == "[ym]" %? print (_nfsctl_cmd_str(0)) +%) + print (_get_wc_str(0)) print (_flock_cmd_str(0)) diff --git a/testsuite/buildok/nd_syscalls2-detailed.stp b/testsuite/buildok/nd_syscalls2-detailed.stp index 8abdd2a9d..dd560f9e0 100755 --- a/testsuite/buildok/nd_syscalls2-detailed.stp +++ b/testsuite/buildok/nd_syscalls2-detailed.stp @@ -10,6 +10,8 @@ probe nd_syscall.nanosleep.return, nd_syscall.compat_nanosleep.return ? printf("%s %s\n", name, retstr) } +# nfsservctl was removed in kernel 3.0/2.6.40. +%( kernel_v < "2.6.40" && CONFIG_NFSD == "[ym]" %? probe nd_syscall.nfsservctl { printf("%s(%s)\n", name, argstr) @@ -19,6 +21,7 @@ probe nd_syscall.nfsservctl.return { printf("%s %s\n", name, retstr) } +%) probe nd_syscall.nice ? { diff --git a/testsuite/buildok/syscalls2-detailed.stp b/testsuite/buildok/syscalls2-detailed.stp index 24bb904e8..0a66c217d 100755 --- a/testsuite/buildok/syscalls2-detailed.stp +++ b/testsuite/buildok/syscalls2-detailed.stp @@ -10,6 +10,8 @@ probe syscall.nanosleep.return, syscall.compat_nanosleep.return ? printf("%s %s\n", name, retstr) } +# nfsservctl was removed in kernel 3.0/2.6.40. +%( kernel_v < "2.6.40" && CONFIG_NFSD == "[ym]" %? probe syscall.nfsservctl ? { printf("%s(%s)\n", name, argstr) @@ -19,6 +21,7 @@ probe syscall.nfsservctl.return ? { printf("%s %s\n", name, retstr) } +%) probe syscall.nice ? {