On Wed, May 25, 2011 at 12:11:29PM +0200, Oliver Pinter wrote: > MFC to 7-STABLE? Somebody need to test it for 7 (I do not expect any failures, but I also prefer to not commit untested changes).
The testing should include destroying some devfs nodes, e.g. by loading and unloading a driver that creates and destroys them. > > On 5/25/11, Konstantin Belousov <[email protected]> wrote: > > Author: kib > > Date: Wed May 25 03:25:14 2011 > > New Revision: 222274 > > URL: http://svn.freebsd.org/changeset/base/222274 > > > > Log: > > MFC r222086: > > The protection against the race with dev_rel(), introduced in r163328, > > should be extended to cover destroy_devl() calls for the children of the > > destroyed dev. > > > > Modified: > > stable/8/sys/kern/kern_conf.c > > Directory Properties: > > stable/8/sys/ (props changed) > > stable/8/sys/amd64/include/xen/ (props changed) > > stable/8/sys/cddl/contrib/opensolaris/ (props changed) > > stable/8/sys/contrib/dev/acpica/ (props changed) > > stable/8/sys/contrib/pf/ (props changed) > > > > Modified: stable/8/sys/kern/kern_conf.c > > ============================================================================== > > --- stable/8/sys/kern/kern_conf.c Wed May 25 01:04:12 2011 > > (r222273) > > +++ stable/8/sys/kern/kern_conf.c Wed May 25 03:25:14 2011 > > (r222274) > > @@ -885,6 +885,8 @@ destroy_devl(struct cdev *dev) > > /* Remove name marking */ > > dev->si_flags &= ~SI_NAMED; > > > > + dev->si_refcount++; /* Avoid race with dev_rel() */ > > + > > /* If we are a child, remove us from the parents list */ > > if (dev->si_flags & SI_CHILD) { > > LIST_REMOVE(dev, si_siblings); > > @@ -901,7 +903,6 @@ destroy_devl(struct cdev *dev) > > dev->si_flags &= ~SI_CLONELIST; > > } > > > > - dev->si_refcount++; /* Avoid race with dev_rel() */ > > csw = dev->si_devsw; > > dev->si_devsw = NULL; /* already NULL for SI_ALIAS */ > > while (csw != NULL && csw->d_purge != NULL && dev->si_threadcount) { > > _______________________________________________ > > [email protected] mailing list > > http://lists.freebsd.org/mailman/listinfo/svn-src-stable > > To unsubscribe, send any mail to "[email protected]" > >
pgpDGF0sgjEYW.pgp
Description: PGP signature
