Module Name: src Committed By: dyoung Date: Fri Apr 30 21:17:22 UTC 2010
Modified Files: src/sys/kern: subr_autoconf.c Log Message: IPL_VM is the highest interrupt priority where alldevs is read/written, and acquiring alldevs_mtx already blocks those interrupts, so delete the splhigh()/splx() in config_alldevs_lock()/_unlock(). Release alldevs_mtx while freeing memory with kmem_free(9); according to new documentation, kmem_free(9) can sleep! :-) Thanks to rmind@ for the tip. Next step: use finer-grained locking, probably by adding a mutex to cfdriver_t. And after that: make sure that all threads of execution are out of the device_t and/or softc before releasing their memory. To generate a diff of this commit: cvs rdiff -u -r1.205 -r1.206 src/sys/kern/subr_autoconf.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.