iwlwifi/iwl3945: fix suspend resume association bug
Patch fixes the following bugs at http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=2005 http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=2007 If we suspend with an association and then resumed, we need to synchronize the active rxon with staging rxon, else we will get an error when iwl_alive_start try to commit rxon and staging is set to channel 0. Before going to suspend staging and active rxon are in sync. After resuming from the suspend, iwl_mac_start is called and it clears the staging rxon. Patch fixes the bug by not clearing the staging rxon in iwl_mac_start. Patch also adds similar fix to 3945. Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
611d3eb72a
commit
8a9b99267c
|
@ -2152,7 +2152,6 @@ static int iwl_mac_start(struct ieee80211_hw *hw)
|
||||||
/* we should be verifying the device is ready to be opened */
|
/* we should be verifying the device is ready to be opened */
|
||||||
mutex_lock(&priv->mutex);
|
mutex_lock(&priv->mutex);
|
||||||
|
|
||||||
memset(&priv->staging_rxon, 0, sizeof(struct iwl_rxon_cmd));
|
|
||||||
/* fetch ucode file from disk, alloc and copy to bus-master buffers ...
|
/* fetch ucode file from disk, alloc and copy to bus-master buffers ...
|
||||||
* ucode filename and max sizes are card-specific. */
|
* ucode filename and max sizes are card-specific. */
|
||||||
|
|
||||||
|
|
|
@ -2498,8 +2498,7 @@ static void iwl3945_alive_start(struct iwl_priv *priv)
|
||||||
struct iwl3945_rxon_cmd *active_rxon =
|
struct iwl3945_rxon_cmd *active_rxon =
|
||||||
(struct iwl3945_rxon_cmd *)(&priv->active_rxon);
|
(struct iwl3945_rxon_cmd *)(&priv->active_rxon);
|
||||||
|
|
||||||
memcpy(&priv->staging_rxon, &priv->active_rxon,
|
priv->staging_rxon.filter_flags |= RXON_FILTER_ASSOC_MSK;
|
||||||
sizeof(priv->staging_rxon));
|
|
||||||
active_rxon->filter_flags &= ~RXON_FILTER_ASSOC_MSK;
|
active_rxon->filter_flags &= ~RXON_FILTER_ASSOC_MSK;
|
||||||
} else {
|
} else {
|
||||||
/* Initialize our rx_config data */
|
/* Initialize our rx_config data */
|
||||||
|
@ -3147,7 +3146,6 @@ static int iwl3945_mac_start(struct ieee80211_hw *hw)
|
||||||
/* we should be verifying the device is ready to be opened */
|
/* we should be verifying the device is ready to be opened */
|
||||||
mutex_lock(&priv->mutex);
|
mutex_lock(&priv->mutex);
|
||||||
|
|
||||||
memset(&priv->staging_rxon, 0, sizeof(priv->staging_rxon));
|
|
||||||
/* fetch ucode file from disk, alloc and copy to bus-master buffers ...
|
/* fetch ucode file from disk, alloc and copy to bus-master buffers ...
|
||||||
* ucode filename and max sizes are card-specific. */
|
* ucode filename and max sizes are card-specific. */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue