public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] 8139too reparent_to_init() race
@ 2001-10-29  1:01 Robert Kuebel
  2001-10-29  1:24 ` Andrew Morton
  0 siblings, 1 reply; 2+ messages in thread
From: Robert Kuebel @ 2001-10-29  1:01 UTC (permalink / raw)
  To: jgarzik, linux-kernel

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.

is this the right way to fix the problem?
should reparent_to_init() check that the parent is not already init?

as a budding kernel hacker i would appreciate any comment on this
change.

please, cc me on replies.  i can only handle the digest form of this
list.

thanks.
rob.

--- linux-2.4.13/drivers/net/8139too.orig.c	Sun Oct 28 18:16:48 2001
+++ linux-2.4.13/drivers/net/8139too.c	Sun Oct 28 18:18:47 2001
@@ -1654,7 +1654,8 @@
 	unsigned long timeout;
 
 	daemonize ();
-	reparent_to_init();
+	if (current->p_opptr != child_reaper)
+		reparent_to_init();
 	spin_lock_irq(&current->sigmask_lock);
 	sigemptyset(&current->blocked);
 	recalc_sigpending(current);

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2001-10-29  1:29 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-10-29  1:01 [PATCH] 8139too reparent_to_init() race Robert Kuebel
2001-10-29  1:24 ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox