diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-04-22 09:31:43 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-04-22 09:31:43 -0400 |
commit | a42c74ee608a424342ef7069ccddf196d873040c (patch) | |
tree | 75adfb9f5e06ebb7c7d5d5e5a5408fa0d6d504b9 /drivers/net/wireless/iwlwifi/dvm/rxon.c | |
parent | 97990a060e6757f48b931a3946b17c1c4362c3fb (diff) | |
parent | 9b383672452bb1097124c76fcb4903e0021f6baf (diff) |
Merge remote-tracking branch 'wireless-next/master' into mac80211-next
Diffstat (limited to 'drivers/net/wireless/iwlwifi/dvm/rxon.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/dvm/rxon.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/drivers/net/wireless/iwlwifi/dvm/rxon.c b/drivers/net/wireless/iwlwifi/dvm/rxon.c index acbb50b5f1e8..707446fa00bd 100644 --- a/drivers/net/wireless/iwlwifi/dvm/rxon.c +++ b/drivers/net/wireless/iwlwifi/dvm/rxon.c | |||
@@ -1420,6 +1420,14 @@ void iwlagn_bss_info_changed(struct ieee80211_hw *hw, | |||
1420 | 1420 | ||
1421 | mutex_lock(&priv->mutex); | 1421 | mutex_lock(&priv->mutex); |
1422 | 1422 | ||
1423 | if (changes & BSS_CHANGED_IDLE && bss_conf->idle) { | ||
1424 | /* | ||
1425 | * If we go idle, then clearly no "passive-no-rx" | ||
1426 | * workaround is needed any more, this is a reset. | ||
1427 | */ | ||
1428 | iwlagn_lift_passive_no_rx(priv); | ||
1429 | } | ||
1430 | |||
1423 | if (unlikely(!iwl_is_ready(priv))) { | 1431 | if (unlikely(!iwl_is_ready(priv))) { |
1424 | IWL_DEBUG_MAC80211(priv, "leave - not ready\n"); | 1432 | IWL_DEBUG_MAC80211(priv, "leave - not ready\n"); |
1425 | mutex_unlock(&priv->mutex); | 1433 | mutex_unlock(&priv->mutex); |
@@ -1451,16 +1459,6 @@ void iwlagn_bss_info_changed(struct ieee80211_hw *hw, | |||
1451 | priv->timestamp = bss_conf->sync_tsf; | 1459 | priv->timestamp = bss_conf->sync_tsf; |
1452 | ctx->staging.filter_flags |= RXON_FILTER_ASSOC_MSK; | 1460 | ctx->staging.filter_flags |= RXON_FILTER_ASSOC_MSK; |
1453 | } else { | 1461 | } else { |
1454 | /* | ||
1455 | * If we disassociate while there are pending | ||
1456 | * frames, just wake up the queues and let the | ||
1457 | * frames "escape" ... This shouldn't really | ||
1458 | * be happening to start with, but we should | ||
1459 | * not get stuck in this case either since it | ||
1460 | * can happen if userspace gets confused. | ||
1461 | */ | ||
1462 | iwlagn_lift_passive_no_rx(priv); | ||
1463 | |||
1464 | ctx->staging.filter_flags &= ~RXON_FILTER_ASSOC_MSK; | 1462 | ctx->staging.filter_flags &= ~RXON_FILTER_ASSOC_MSK; |
1465 | 1463 | ||
1466 | if (ctx->ctxid == IWL_RXON_CTX_BSS) | 1464 | if (ctx->ctxid == IWL_RXON_CTX_BSS) |