--- a/drivers/net/wireless/mwl8k.c +++ b/drivers/net/wireless/mwl8k.c @@ -6262,6 +6262,8 @@ static int mwl8k_probe(struct pci_dev *p priv->running_bsses = 0; + wait_for_completion(&priv->firmware_loading_complete); + return rc; err_stop_firmware: @@ -6295,8 +6297,6 @@ static void mwl8k_remove(struct pci_dev return; priv = hw->priv; - wait_for_completion(&priv->firmware_loading_complete); - if (priv->fw_state == FW_STATE_ERROR) { mwl8k_hw_reset(priv); goto unmap;