Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Sep 2012 09:38:21 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        Ed Maste <emaste@freebsd.org>
Cc:        Konstantin Belousov <kostikbel@gmail.com>, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r240938 - head/sys/net
Message-ID:  <201209260938.21301.jhb@freebsd.org>
In-Reply-To: <CAPyFy2ArzaRzpRKADQdOfyz2%2BO%2B%2BukSSEZUGpcK5YeGhUqcGvw@mail.gmail.com>
References:  <201209252210.q8PMAEx5003950@svn.freebsd.org> <20120926045204.GG35915@deviant.kiev.zoral.com.ua> <CAPyFy2ArzaRzpRKADQdOfyz2%2BO%2B%2BukSSEZUGpcK5YeGhUqcGvw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday, September 26, 2012 8:48:03 am Ed Maste wrote:
> 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.

You do need to ensure that any resources in use by an open device are cleaned
up, but I think devfs will do useful things such as destroy all the cdev_priv
objects associated with a device after the "devdrn" sleep finishes, so that
the cleanup generally happens "for free".

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209260938.21301.jhb>