The patch titled sys_getppid oopses on debug kernel has been added to the -mm tree. Its filename is sys_getppid-oopses-on-debug-kernel-v2.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: sys_getppid oopses on debug kernel From: Kirill Korotaev <dev@xxxxx> sys_getppid() optimization can access a freed memory. On kernels with DEBUG_SLAB turned ON, this results in Oops. As Dave Hansen noted, this optimization is also unsafe for memory hotplug. So this patch always takes the lock to be safe. Signed-off-by: Kirill Korotaev <dev@xxxxxxxxxx> Cc: <stable@xxxxxxxxxx> Cc: Dave Hansen <haveblue@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- kernel/timer.c | 23 +++-------------------- 1 files changed, 3 insertions(+), 20 deletions(-) diff -puN kernel/timer.c~sys_getppid-oopses-on-debug-kernel-v2 kernel/timer.c --- a/kernel/timer.c~sys_getppid-oopses-on-debug-kernel-v2 +++ a/kernel/timer.c @@ -1342,28 +1342,11 @@ asmlinkage long sys_getpid(void) asmlinkage long sys_getppid(void) { int pid; - struct task_struct *me = current; - struct task_struct *parent; - parent = me->group_leader->real_parent; - for (;;) { - pid = parent->tgid; -#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT) -{ - struct task_struct *old = parent; + read_lock(&tasklist_lock); + pid = current->group_leader->real_parent->tgid; + read_unlock(&tasklist_lock); - /* - * Make sure we read the pid before re-reading the - * parent pointer: - */ - smp_rmb(); - parent = me->group_leader->real_parent; - if (old != parent) - continue; -} -#endif - break; - } return pid; } _ Patches currently in -mm which might be from dev@xxxxx are sys_getppid-oopses-on-debug-kernel-v2.patch fix-unserialized-task-files-changing.patch ipc-namespace-utils.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html