[lkml]   [2001]   [Oct]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
SubjectRe: [PATCH] 8139too reparent_to_init() race
Robert Kuebel wrote:
> hello all,
> lately i noticed this message during boot-up (when the network
> interfaces were being configured) ...
> "task `ifconfig' exit_signal 17 in reparent_to_init"
> this happens only about 1/2 of the time.
> after some digging this is what i found...
> sometimes ifconfig's parent exits before ifconfig reaches
> rtl8139_thread(). when this happens, ifconfig's exit_signal is set to
> SIGCHLD (in forget_original_parent), because its new parent is init.
> then rlt8139_thread() is reached it calls reparent_to_init(), which
> complains that exit_signal is already non-zero.
> basically this patch stops rtl8139_thread() from calling
> reparent_to_init() when its parent is already init.

Thanks - that's a useful analysis.

The check in reparent_to_init() was to warn about the situation
where someone had deliberately set the exit signal to some
non-zero value and then the child calls reparent_to_init() - it's
telling you that we're about to stomp on your chosen exit signal.
I hadn't thought about the forget_original_parent() case.

So the fix should be to change the debug code in reparent_to_init()
so it doesn't complain if the exit signal is already SIGCHLD. Or
just kill it off altogether.

--- linux-2.4.14-pre3/kernel/sched.c Tue Oct 23 23:09:48 2001
+++ linux-akpm/kernel/sched.c Sun Oct 28 17:23:26 2001
@@ -1250,11 +1250,6 @@ void reparent_to_init(void)

/* Set the exit signal to SIGCHLD so we signal init on exit */
- if (this_task->exit_signal != 0) {
- printk(KERN_ERR "task `%s' exit_signal %d in "
- __FUNCTION__ "\n",
- this_task->comm, this_task->exit_signal);
- }
this_task->exit_signal = SIGCHLD;

/* We also take the runqueue_lock while altering task fields
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:11    [W:2.209 / U:0.320 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site