diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2011-05-18 22:36:58 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2011-05-18 22:36:58 +0000 |
| commit | dbe66680b0eeca111740b149fac4ed45b0fdbf09 (patch) | |
| tree | 8e3558bfd943ec6be8318121c6d35bd1e1bb4613 /sys | |
| parent | bc14b14d62d03e69cb35e20e604a425c56ef67d8 (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/kern/kern_conf.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/kern_conf.c b/sys/kern/kern_conf.c index b2be5cc12d1a..59b876c18e55 100644 --- a/sys/kern/kern_conf.c +++ b/sys/kern/kern_conf.c @@ -981,6 +981,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); @@ -997,7 +999,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) { |
