iwlwifi: fix notification wait bug
authorJohannes Berg <johannes.berg@intel.com>
Tue, 6 Mar 2012 21:30:57 +0000 (13:30 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 7 Mar 2012 18:56:32 +0000 (13:56 -0500)
In "iwlwifi: consolidate the start_device flow"
Emmanuel added the return if the fw isn't there
but forgot to take into account that the struct
for notification wait needs to be added only
after the check -- fix that.

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>
drivers/net/wireless/iwlwifi/iwl-ucode.c

index c1c5e1f2223ab8c18720165388746e58600e5512..686d456d226eec5c84884108655fa7e6e8a14e79 100644 (file)
@@ -533,9 +533,6 @@ int iwl_load_ucode_wait_alive(struct iwl_priv *priv,
        int ret;
        enum iwl_ucode_type old_type;
 
-       iwl_init_notification_wait(priv->shrd, &alive_wait, REPLY_ALIVE,
-                                     iwl_alive_fn, &alive_data);
-
        old_type = priv->shrd->ucode_type;
        priv->shrd->ucode_type = ucode_type;
        fw = iwl_get_ucode_image(priv, ucode_type);
@@ -543,6 +540,9 @@ int iwl_load_ucode_wait_alive(struct iwl_priv *priv,
        if (!fw)
                return -EINVAL;
 
+       iwl_init_notification_wait(priv->shrd, &alive_wait, REPLY_ALIVE,
+                                     iwl_alive_fn, &alive_data);
+
        ret = iwl_trans_start_fw(trans(priv), fw);
        if (ret) {
                priv->shrd->ucode_type = old_type;