From owner-freebsd-hackers@FreeBSD.ORG Tue Apr 2 16:50:24 2013 Return-Path: Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 9893979B; Tue, 2 Apr 2013 16:50:24 +0000 (UTC) (envelope-from torek@elf.torek.net) Received: from elf.torek.net (50-73-42-1-utah.hfc.comcastbusiness.net [50.73.42.1]) by mx1.freebsd.org (Postfix) with ESMTP id ED416F77; Tue, 2 Apr 2013 16:50:23 +0000 (UTC) Received: from elf.torek.net (localhost [127.0.0.1]) by elf.torek.net (8.14.5/8.14.5) with ESMTP id r32GoF5C034891; Tue, 2 Apr 2013 10:50:15 -0600 (MDT) (envelope-from torek@elf.torek.net) Received: (from torek@localhost) by elf.torek.net (8.14.5/8.14.5/Submit) id r32GoFKO034890; Tue, 2 Apr 2013 10:50:15 -0600 (MDT) (envelope-from torek) Date: Tue, 2 Apr 2013 10:50:15 -0600 (MDT) From: Chris Torek Message-Id: <201304021650.r32GoFKO034890@elf.torek.net> To: bryanv@daemoninthecloset.org, glebius@FreeBSD.org Subject: Re: boot time crash in if_detach_internal() In-Reply-To: <1227759852.2041.1364917640905.JavaMail.root@daemoninthecloset.org> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (elf.torek.net [127.0.0.1]); Tue, 02 Apr 2013 10:50:15 -0600 (MDT) X-Mailman-Approved-At: Tue, 02 Apr 2013 16:58:12 +0000 Cc: freebsd-hackers@FreeBSD.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Apr 2013 16:50:24 -0000 >Not sure if the right answer is for drivers not to call ether_ifattach() >until the point-of-no-failure (lots of drivers are wrong then) or >initialize other parts earlier. The other "obvious" method is to rearrange the sysinit priorities (/sys/sys/kernel.h) so that all network domains are initialized before invoking the device configuration code -- moving SI_SUB_PROTO* before SI_CONFIGURE -- but presumably this idea was tried and rejected earlier and hence the code in ether_ifattach to check the same global variable. Chris