[Bug 267869] iwlwifi cannot kldunload after device is attached
Date: Sat, 19 Nov 2022 21:12:42 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=267869 Bug ID: 267869 Summary: iwlwifi cannot kldunload after device is attached Product: Base System Version: 13.1-STABLE Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: wireless Assignee: wireless@FreeBSD.org Reporter: pmc@citylink.dinoex.sub.org Created attachment 238184 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=238184&action=edit wait for completion without resetting condition When trying to kldunload if_iwlwifi, the command will not succeed and neither fail. It will instead hang forever in the "completi" wchan. The exact location is in the first line of iwl-drv.c:iwl_drv_stop(): wait_for_completion(&drv->request_firmware_complete); This behaviour was introduced by change f808c43ad9234670 "iwlwifi: enforce FreeBSD specific (expected) behaviour" which now does another wait_for_completion() already in iwl_drv_start(). The problem is that wait_for_completion() apparently does not only wait for the condition, but also reset the condition, and so the now second invocation in iwl_drv_stop does wait forever for a condition that will not appear again. I created a quick workaround patch - without bothering to understand the intended use of the completion, or the use of the sleepq, so this should be rewritten more nicely - but it works for now so we can focus on the other issues. -- You are receiving this mail because: You are the assignee for the bug.