From owner-svn-src-all@FreeBSD.ORG Thu Jul 25 14:27:47 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 676584A0; Thu, 25 Jul 2013 14:27:47 +0000 (UTC) (envelope-from marius@alchemy.franken.de) Received: from alchemy.franken.de (alchemy.franken.de [194.94.249.214]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D4DB32BA9; Thu, 25 Jul 2013 14:27:46 +0000 (UTC) Received: from alchemy.franken.de (localhost [127.0.0.1]) by alchemy.franken.de (8.14.7/8.14.7/ALCHEMY.FRANKEN.DE) with ESMTP id r6PERh5I094973; Thu, 25 Jul 2013 16:27:43 +0200 (CEST) (envelope-from marius@alchemy.franken.de) Received: (from marius@localhost) by alchemy.franken.de (8.14.7/8.14.7/Submit) id r6PERhg5094972; Thu, 25 Jul 2013 16:27:43 +0200 (CEST) (envelope-from marius) Date: Thu, 25 Jul 2013 16:27:43 +0200 From: Marius Strobl To: Marko Zec Subject: Re: svn commit: r253346 - in head/sys: kern net netgraph netgraph/bluetooth/socket Message-ID: <20130725142743.GS56034@alchemy.franken.de> References: <201307150132.r6F1WttU081255@svn.freebsd.org> <20130725080758.GE948@alchemy.franken.de> <201307251224.53211.zec@fer.hr> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201307251224.53211.zec@fer.hr> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: Craig Rodrigues , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jul 2013 14:27:47 -0000 On Thu, Jul 25, 2013 at 12:24:53PM +0200, Marko Zec wrote: > On Thursday 25 July 2013 11:36:46 Craig Rodrigues wrote: > > On Thu, Jul 25, 2013 at 1:07 AM, Marius Strobl > wrote: > > > Uhm - do we really need to have that layering violation in subr_bus.c? > > > Wouldn't it be sufficient to set curthread->td_vnet to vnet0 in > > > if_alloc(9) or if_attach(9) at least instead? > > > > There was some discussion about this involving Marko Zec, Adrian Chadd, > > and myself > > starting in this thread: > > > > http://lists.freebsd.org/pipermail/svn-src-all/2013-July/071798.html > > > > Adrian and Marko converged on similar patches: > > > > http://lists.freebsd.org/pipermail/freebsd-hackers/2012-November/041120.h > >tml > > http://people.freebsd.org/~adrian/ath/20130712-vimage-default-attach-deta > >ch.diff > > > > > > As Marko mentioned in another e-mail on this thread, the patch as it is > > necessary in > > order to fix VIMAGE related kernel panics in many different scenarios, > > including > > ones involving Netgraph nodes. > > Moreover, unconditionally setting curvnet to vnet0 in if_alloc(), > if_attach() or similar places as suggested my Marius simply couldn't work, > because that would break creation of pseudo-interfaces inside non-vnet0 > contexts (such as vlan, ng_ether, ng_eiface etc.). > Well, I didn't say that it shall be unconditional; in a previous version of the patch Adrian also set it conditionally only in case vnet isn't vnet0 in device_probe_and_attach() so it seems viable to check whether that's needed in a particular context. As for Netgraph nodes I don't know how these are attached to devices but a quick look at the code suggests that f. e. ng_make_node_common() would be a good candidate for setting vnet to vnet0 if necessary. Moving this network specific stuff out of the generic device layer would also make things consistent and symmetric given that r253346 added setting vnet to if_detach(), if_free() and ng_unref_node(). Marius