diff options
author | kib <kib@FreeBSD.org> | 2007-07-05 13:04:59 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2007-07-05 13:04:59 +0000 |
commit | 81a0028ff2d2c391933f52b57222858afc9a5f56 (patch) | |
tree | 0ad6ffd8868a9d789469e992b7c3bd805ee57442 | |
parent | 1eb68059673ddbadc76bac6a7ce5a9db6b8072c3 (diff) | |
download | FreeBSD-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.c | 10 |
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 * |