Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 214655
b: refs/heads/master
c: f5354c1
h: refs/heads/master
i:
  214653: 68bbf9b
  214651: ed7a7ea
  214647: d92a82d
  214639: 4752c88
  214623: 4bee609
  214591: 062c046
  214527: 28ce22c
v: v3
  • Loading branch information
Stanislaw Gruszka authored and John W. Linville committed Sep 14, 2010
1 parent 7a15c55 commit 54088f2
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 02d8c14b590f583fd6e8c16fe779f845845effd9
refs/heads/master: f5354c17dc29681c241f2774f3ef9478fb586673
15 changes: 3 additions & 12 deletions trunk/drivers/net/wireless/iwlwifi/iwl-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -2081,7 +2081,6 @@ void iwl_mac_remove_interface(struct ieee80211_hw *hw,
{
struct iwl_priv *priv = hw->priv;
struct iwl_rxon_context *ctx = iwl_rxon_ctx_from_vif(vif);
bool scan_completed = false;

IWL_DEBUG_MAC80211(priv, "enter\n");

Expand All @@ -2090,18 +2089,13 @@ void iwl_mac_remove_interface(struct ieee80211_hw *hw,
WARN_ON(ctx->vif != vif);
ctx->vif = NULL;

iwl_scan_cancel_timeout(priv, 100);
if (priv->scan_vif == vif)
iwl_scan_cancel_timeout(priv, 100);
iwl_set_mode(priv, vif);

if (!ctx->always_active)
ctx->is_active = false;

if (priv->scan_vif == vif) {
scan_completed = true;
priv->scan_vif = NULL;
priv->scan_request = NULL;
}

/*
* When removing the IBSS interface, overwrite the
* BT traffic load with the stored one from the last
Expand All @@ -2115,9 +2109,6 @@ void iwl_mac_remove_interface(struct ieee80211_hw *hw,
memset(priv->bssid, 0, ETH_ALEN);
mutex_unlock(&priv->mutex);

if (scan_completed)
ieee80211_scan_completed(priv->hw, true);

IWL_DEBUG_MAC80211(priv, "leave\n");

}
Expand Down Expand Up @@ -2298,6 +2289,7 @@ void iwl_mac_reset_tsf(struct ieee80211_hw *hw)

spin_unlock_irqrestore(&priv->lock, flags);

iwl_scan_cancel_timeout(priv, 100);
if (!iwl_is_ready_rf(priv)) {
IWL_DEBUG_MAC80211(priv, "leave - not ready\n");
mutex_unlock(&priv->mutex);
Expand All @@ -2307,7 +2299,6 @@ void iwl_mac_reset_tsf(struct ieee80211_hw *hw)
/* we are restarting association process
* clear RXON_FILTER_ASSOC_MSK bit
*/
iwl_scan_cancel_timeout(priv, 100);
ctx->staging.filter_flags &= ~RXON_FILTER_ASSOC_MSK;
iwlcore_commit_rxon(priv, ctx);

Expand Down
20 changes: 15 additions & 5 deletions trunk/drivers/net/wireless/iwlwifi/iwl-scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,15 @@ static void iwl_complete_scan(struct iwl_priv *priv, bool aborted)
priv->scan_request = NULL;
}

static void iwl_force_scan_end(struct iwl_priv *priv)
{
IWL_DEBUG_SCAN(priv, "Forcing scan end\n");
clear_bit(STATUS_SCANNING, &priv->status);
clear_bit(STATUS_SCAN_HW, &priv->status);
clear_bit(STATUS_SCAN_ABORTING, &priv->status);
iwl_complete_scan(priv, true);
}

static void iwl_do_scan_abort(struct iwl_priv *priv)
{
int ret;
Expand All @@ -125,10 +134,7 @@ static void iwl_do_scan_abort(struct iwl_priv *priv)
ret = iwl_send_scan_abort(priv);
if (ret) {
IWL_DEBUG_SCAN(priv, "Send scan abort failed %d\n", ret);
clear_bit(STATUS_SCANNING, &priv->status);
clear_bit(STATUS_SCAN_HW, &priv->status);
clear_bit(STATUS_SCAN_ABORTING, &priv->status);
iwl_complete_scan(priv, true);
iwl_force_scan_end(priv);
} else
IWL_DEBUG_SCAN(priv, "Sucessfully send scan abort\n");
}
Expand All @@ -151,6 +157,7 @@ EXPORT_SYMBOL(iwl_scan_cancel);
*/
int iwl_scan_cancel_timeout(struct iwl_priv *priv, unsigned long ms)
{
int ret;
unsigned long timeout = jiffies + msecs_to_jiffies(ms);

lockdep_assert_held(&priv->mutex);
Expand All @@ -165,7 +172,10 @@ int iwl_scan_cancel_timeout(struct iwl_priv *priv, unsigned long ms)
msleep(20);
}

return test_bit(STATUS_SCAN_HW, &priv->status);
ret = test_bit(STATUS_SCAN_HW, &priv->status);
if (ret)
iwl_force_scan_end(priv);
return ret;
}
EXPORT_SYMBOL(iwl_scan_cancel_timeout);

Expand Down

0 comments on commit 54088f2

Please sign in to comment.