iwlagn: Sync rxon active with changes
authorMohamed Abbas <mohamed.abbas@intel.com>
Wed, 8 Apr 2009 18:39:29 +0000 (11:39 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 22 Apr 2009 20:54:44 +0000 (16:54 -0400)
We need to sync rxon_active with changes after we commit rxon_assoc,
without rxon_active will still have the old data that cause
iwl_send_rxon_assoc to fail with no change in rxon command.

Signed-off-by: Mohamed Abbas <mohamed.abbas@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-core.c

index c523cc3..8f121fa 100644 (file)
@@ -2238,6 +2238,7 @@ void iwl_bss_info_changed(struct ieee80211_hw *hw,
                                     u32 changes)
 {
        struct iwl_priv *priv = hw->priv;
+       int ret;
 
        IWL_DEBUG_MAC80211(priv, "changes = 0x%X\n", changes);
 
@@ -2292,7 +2293,12 @@ void iwl_bss_info_changed(struct ieee80211_hw *hw,
                }
        } else if (changes && iwl_is_associated(priv) && priv->assoc_id) {
                        IWL_DEBUG_MAC80211(priv, "Associated Changes %d\n", changes);
-                       iwl_send_rxon_assoc(priv);
+                       ret = iwl_send_rxon_assoc(priv);
+                       if (!ret)
+                               /* Sync active_rxon with latest change. */
+                               memcpy((void *)&priv->active_rxon,
+                                       &priv->staging_rxon,
+                                       sizeof(struct iwl_rxon_cmd));
        }
 
 }