summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2004-07-28 08:48:26 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-07-28 08:48:26 -0700
commitbc2b7e977da422e84c02cca04ff8ea0f958287e2 (patch)
treebd36a40acaedc9365eb1a0864c198fed4928de6e /kernel
parentd77b3c84297c4356beb4a5f6a4153c03577a2bc9 (diff)
parente792534a0363f8008ad96328a8bee0ebd17566fa (diff)
Merge bk://ppc.bkbits.net/for-linus-ppc
into ppc970.osdl.org:/home/torvalds/v2.6/linux
Diffstat (limited to 'kernel')
-rw-r--r--kernel/exit.c19
-rw-r--r--kernel/power/pmdisk.c2
2 files changed, 9 insertions, 12 deletions
diff --git a/kernel/exit.c b/kernel/exit.c
index 5d13c054d256..2b2f728220e4 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -1018,20 +1018,17 @@ static int wait_task_zombie(task_t *p, unsigned int __user *stat_addr, struct ru
if (p->real_parent != p->parent) {
__ptrace_unlink(p);
p->state = TASK_ZOMBIE;
- /* If this is a detached thread, this is where it goes away. */
- if (p->exit_signal == -1) {
- /* release_task takes the lock itself. */
- write_unlock_irq(&tasklist_lock);
- release_task (p);
- }
- else {
+ /*
+ * If this is not a detached task, notify the parent. If it's
+ * still not detached after that, don't release it now.
+ */
+ if (p->exit_signal != -1) {
do_notify_parent(p, p->exit_signal);
- write_unlock_irq(&tasklist_lock);
+ if (p->exit_signal != -1)
+ p = NULL;
}
- p = NULL;
}
- else
- write_unlock_irq(&tasklist_lock);
+ write_unlock_irq(&tasklist_lock);
}
if (p != NULL)
release_task(p);
diff --git a/kernel/power/pmdisk.c b/kernel/power/pmdisk.c
index d4c20e05a488..318bfb9fa5f8 100644
--- a/kernel/power/pmdisk.c
+++ b/kernel/power/pmdisk.c
@@ -953,7 +953,7 @@ static const char * __init sanity_check(void)
return "machine";
if(pmdisk_info.cpus != num_online_cpus())
return "number of cpus";
- return 0;
+ return NULL;
}