Date: Wed, 26 Sep 2012 08:48:03 -0400 From: Ed Maste <emaste@freebsd.org> To: Konstantin Belousov <kostikbel@gmail.com> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r240938 - head/sys/net Message-ID: <CAPyFy2ArzaRzpRKADQdOfyz2%2BO%2B%2BukSSEZUGpcK5YeGhUqcGvw@mail.gmail.com> In-Reply-To: <20120926045204.GG35915@deviant.kiev.zoral.com.ua> References: <201209252210.q8PMAEx5003950@svn.freebsd.org> <20120926045204.GG35915@deviant.kiev.zoral.com.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On 26 September 2012 00:52, Konstantin Belousov <kostikbel@gmail.com> wrote: > On Tue, Sep 25, 2012 at 10:10:14PM +0000, Ed Maste wrote: >> Author: emaste >> Date: Tue Sep 25 22:10:14 2012 >> New Revision: 240938 >> URL: http://svn.freebsd.org/changeset/base/240938 >> >> Log: >> Avoid INVARIANTS panic destroying an in-use tap(4) >> >> The requirement (implied by the KASSERT in tap_destroy) that the tap is >> closed isn't valid; destroy_dev will block in devdrn while other threads >> are in d_* functions. > Are you sure ? > > The device may be opened, but no threads could be in any cdevsw > methods. destroy_dev(9) only waits for threads to leave cdevsw methods, > and not for the close to happen. My first approach mirrored if_tun, but jhb@ pointed out on IRC that any open devices will revert to dead_devsw so that future accesses will fail. -Ed
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPyFy2ArzaRzpRKADQdOfyz2%2BO%2B%2BukSSEZUGpcK5YeGhUqcGvw>