This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 05/13/2009 10:43 PM, Wenji Huang wrote:Hi,
The commit in kernel
signals: check_kill_permission: check session under tasklist_lock author Oleg Nesterov <oleg@tv-sign.ru> Wed, 30 Apr 2008 07:53:01 +0000 (00:53 -0700) committer Linus Torvalds <torvalds@linux-foundation.org> Wed, 30 Apr 2008 15:29:37 +0000 (08:29 -0700) commit 2e2ba22ea4fd4bb85f0fa37c521066db6775cbef
removed member session from signal_struct. This results in compilation error for sid() on latest kernel.
I haven't found the replacement for the member or alike function. Guess need to make it available under %kernel_v or other solution if someone had.
Right -- I pointed this out to Malte Nuhn last week. I think the best we can do is something like:
task_session_nr_ns(current, &init_pid_ns)
I don't have a running 2.6.30 -- can you try this out?
Yes, The test confirmed that task_session_nr_ns is a good choice. But it only exists on 2.6.24+ kernel. The following patch maybe keeps better compatibility.
diff --git a/tapset/context.stp b/tapset/context.stp index 5d855f8..b64d77c 100644 --- a/tapset/context.stp +++ b/tapset/context.stp @@ -70,9 +70,13 @@ function ppid:long () %{ /* pure */ * leader. Session ID is stored in the signal_struct since Kernel 2.6.0. */ function sid:long () %{ /* pure */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) struct signal_struct *ss = kread( &(current->signal) ); THIS->__retvalue = kread ( &(ss->session) ); CATCH_DEREF_FAULT(); +#else + THIS->__retvalue = task_session_nr_ns(current, &init_pid_ns); +#endif %}
Regards, Wenji
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |