Edward O'Callaghan <[email protected]> added the comment:
OK, I think I have figured out what is wrong, please correct me if I am wrong
however I think something like this happens on init:
static void iwn_init(void *arg)
...
wlan_serialize_enter();
iwn_init_locked(sc); -----> static void iwn_init_locked(struct iwn_softc *sc)
...
/* Read firmware images from the filesystem. */
error = iwn_read_firmware(sc); -----> static int
iwn_read_firmware(struct
iwn_softc *sc)
...
/*
* Read firmware image
from filesystem. The firmware can block
* in a taskq and
deadlock against our serializer so unlock
* while we do tihs.
*/
wlan_assert_serialized(); <------- *KABOOM?*
wlan_serialize_exit();
----------
status: unread -> chatting
_____________________________________________________
DragonFly issue tracker <[email protected]>
<http://bugs.dragonflybsd.org/issue2158>
_____________________________________________________