summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2007-07-05 13:04:59 +0000
committerkib <kib@FreeBSD.org>2007-07-05 13:04:59 +0000
commit81a0028ff2d2c391933f52b57222858afc9a5f56 (patch)
tree0ad6ffd8868a9d789469e992b7c3bd805ee57442
parent1eb68059673ddbadc76bac6a7ce5a9db6b8072c3 (diff)
downloadFreeBSD-src-81a0028ff2d2c391933f52b57222858afc9a5f56.zip
FreeBSD-src-81a0028ff2d2c391933f52b57222858afc9a5f56.tar.gz
Revert destroy_dev() to the state before destroy_dev_sched() was introduced.
Attempt to spawn destroy_dev_sched() from it causes inadmissible races. Requested by: tegge Approved by: re (kensmith)
-rw-r--r--sys/kern/kern_conf.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/sys/kern/kern_conf.c b/sys/kern/kern_conf.c
index 751f524..c2b8fbf 100644
--- a/sys/kern/kern_conf.c
+++ b/sys/kern/kern_conf.c
@@ -782,16 +782,10 @@ destroy_devl(struct cdev *dev)
void
destroy_dev(struct cdev *dev)
{
- struct cdevsw *csw;
dev_lock();
- csw = dev->si_devsw;
- if ((csw != NULL && csw->d_purge != NULL) ||
- dev->si_threadcount == 0) {
- destroy_devl(dev);
- dev_unlock_and_free();
- } else
- destroy_dev_sched_cbl(dev, NULL, NULL);
+ destroy_devl(dev);
+ dev_unlock_and_free();
}
const char *
OpenPOWER on IntegriCloud