svn commit: r216611 - stable/8/sys/kern
Andrew Thompson
thompsa at FreeBSD.org
Tue Dec 21 09:31:49 UTC 2010
Author: thompsa
Date: Tue Dec 21 09:31:48 2010
New Revision: 216611
URL: http://svn.freebsd.org/changeset/base/216611
Log:
MFC r216371:
Fix race in devfs by using LIST_FIRST() instead of
LIST_FOREACH_SAFE() when freeing the devfs private
data entries.
Approved by: re (kib)
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 Tue Dec 21 09:16:42 2010 (r216610)
+++ stable/8/sys/kern/kern_conf.c Tue Dec 21 09:31:48 2010 (r216611)
@@ -871,7 +871,7 @@ static void
destroy_devl(struct cdev *dev)
{
struct cdevsw *csw;
- struct cdev_privdata *p, *p1;
+ struct cdev_privdata *p;
mtx_assert(&devmtx, MA_OWNED);
KASSERT(dev->si_flags & SI_NAMED,
@@ -919,7 +919,7 @@ destroy_devl(struct cdev *dev)
dev_unlock();
notify_destroy(dev);
mtx_lock(&cdevpriv_mtx);
- LIST_FOREACH_SAFE(p, &cdev2priv(dev)->cdp_fdpriv, cdpd_list, p1) {
+ while ((p = LIST_FIRST(&cdev2priv(dev)->cdp_fdpriv)) != NULL) {
devfs_destroy_cdevpriv(p);
mtx_lock(&cdevpriv_mtx);
}
More information about the svn-src-stable
mailing list