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]"
> >

Attachment: pgpDGF0sgjEYW.pgp
Description: PGP signature

Reply via email to