From: Johannes Berg <johannes.berg@intel.com>
Date: Mon, 5 Mar 2012 19:24:51 +0000 (-0800)
Subject: iwlwifi: move firmware completion wait
X-Git-Tag: firefly_0821_release~3680^2~3338^2~108^2~113
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2e7eb117586198386e5a06d0bc4279a9d7cbaeb6;p=firefly-linux-kernel-4.4.55.git

iwlwifi: move firmware completion wait

This doesn't belong into the op_mode, it has
to be in the drv stop flow instead.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---

diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index c3b594647def..8bb3f173bfa0 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -1371,8 +1371,6 @@ static void iwl_op_mode_dvm_stop(struct iwl_op_mode *op_mode)
 {
 	struct iwl_priv *priv = IWL_OP_MODE_GET_DVM(op_mode);
 
-	wait_for_completion(&nic(priv)->request_firmware_complete);
-
 	IWL_DEBUG_INFO(priv, "*** UNLOAD DRIVER ***\n");
 
 	iwl_dbgfs_unregister(priv);
diff --git a/drivers/net/wireless/iwlwifi/iwl-drv.c b/drivers/net/wireless/iwlwifi/iwl-drv.c
index 343f41eb4e4f..1a588f36b591 100644
--- a/drivers/net/wireless/iwlwifi/iwl-drv.c
+++ b/drivers/net/wireless/iwlwifi/iwl-drv.c
@@ -720,6 +720,8 @@ int iwl_drv_start(struct iwl_shared *shrd,
 
 void iwl_drv_stop(struct iwl_shared *shrd)
 {
+	wait_for_completion(&shrd->nic->request_firmware_complete);
+
 	/* op_mode can be NULL if its start failed */
 	if (shrd->nic->op_mode)
 		iwl_op_mode_stop(shrd->nic->op_mode);