From owner-svn-src-head@FreeBSD.ORG Thu Jul 25 08:08:07 2013 Return-Path: Delivered-To: svn-src-head@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 AFA269CB; Thu, 25 Jul 2013 08:08:07 +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 2D3522426; Thu, 25 Jul 2013 08:08:06 +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 r6P87wva093360; Thu, 25 Jul 2013 10:07:58 +0200 (CEST) (envelope-from marius@alchemy.franken.de) Received: (from marius@localhost) by alchemy.franken.de (8.14.7/8.14.7/Submit) id r6P87whZ093359; Thu, 25 Jul 2013 10:07:58 +0200 (CEST) (envelope-from marius) Date: Thu, 25 Jul 2013 10:07:58 +0200 From: Marius Strobl To: Craig Rodrigues Subject: Re: svn commit: r253346 - in head/sys: kern net netgraph netgraph/bluetooth/socket Message-ID: <20130725080758.GE948@alchemy.franken.de> References: <201307150132.r6F1WttU081255@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201307150132.r6F1WttU081255@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jul 2013 08:08:07 -0000 On Mon, Jul 15, 2013 at 01:32:55AM +0000, Craig Rodrigues wrote: > Author: rodrigc > Date: Mon Jul 15 01:32:55 2013 > New Revision: 253346 > URL: http://svnweb.freebsd.org/changeset/base/253346 > > Log: > PR: 168520 170096 > Submitted by: adrian, zec > > Fix multiple kernel panics when VIMAGE is enabled in the kernel. > These fixes are based on patches submitted by Adrian Chadd and Marko Zec. > > (1) Set curthread->td_vnet to vnet0 in device_probe_and_attach() just before calling > device_attach(). This fixes multiple VIMAGE related kernel panics > when trying to attach Bluetooth or USB Ethernet devices because > curthread->td_vnet is NULL. > > (2) Set curthread->td_vnet in if_detach(). This fixes kernel panics when detaching networking > interfaces, especially USB Ethernet devices. > > (3) Use VNET_DOMAIN_SET() in ng_btsocket.c > > (4) In ng_unref_node() set curthread->td_vnet. This fixes kernel panics > when detaching Netgraph nodes. > > Modified: > head/sys/kern/subr_bus.c > head/sys/net/if.c > head/sys/netgraph/bluetooth/socket/ng_btsocket.c > head/sys/netgraph/ng_base.c > > Modified: head/sys/kern/subr_bus.c > ============================================================================== > --- head/sys/kern/subr_bus.c Mon Jul 15 00:49:10 2013 (r253345) > +++ head/sys/kern/subr_bus.c Mon Jul 15 01:32:55 2013 (r253346) > @@ -53,6 +53,8 @@ __FBSDID("$FreeBSD$"); > #include > #include > > +#include > + > #include > > #include > @@ -2735,7 +2737,11 @@ device_probe_and_attach(device_t dev) > return (0); > else if (error != 0) > return (error); > - return (device_attach(dev)); > + > + CURVNET_SET_QUIET(vnet0); > + error = device_attach(dev); > + CURVNET_RESTORE(); > + return error; > } 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? Marius