diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index 4d2ed52af160..c1482852ea41 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -2683,6 +2683,7 @@ static int iwl_mac_ampdu_action(struct ieee80211_hw *hw, | |||
2683 | struct ieee80211_sta *sta, u16 tid, u16 *ssn) | 2683 | struct ieee80211_sta *sta, u16 tid, u16 *ssn) |
2684 | { | 2684 | { |
2685 | struct iwl_priv *priv = hw->priv; | 2685 | struct iwl_priv *priv = hw->priv; |
2686 | int ret; | ||
2686 | 2687 | ||
2687 | IWL_DEBUG_HT(priv, "A-MPDU action on addr %pM tid %d\n", | 2688 | IWL_DEBUG_HT(priv, "A-MPDU action on addr %pM tid %d\n", |
2688 | sta->addr, tid); | 2689 | sta->addr, tid); |
@@ -2696,13 +2697,21 @@ static int iwl_mac_ampdu_action(struct ieee80211_hw *hw, | |||
2696 | return iwl_sta_rx_agg_start(priv, sta->addr, tid, *ssn); | 2697 | return iwl_sta_rx_agg_start(priv, sta->addr, tid, *ssn); |
2697 | case IEEE80211_AMPDU_RX_STOP: | 2698 | case IEEE80211_AMPDU_RX_STOP: |
2698 | IWL_DEBUG_HT(priv, "stop Rx\n"); | 2699 | IWL_DEBUG_HT(priv, "stop Rx\n"); |
2699 | return iwl_sta_rx_agg_stop(priv, sta->addr, tid); | 2700 | ret = iwl_sta_rx_agg_stop(priv, sta->addr, tid); |
2701 | if (test_bit(STATUS_EXIT_PENDING, &priv->status)) | ||
2702 | return 0; | ||
2703 | else | ||
2704 | return ret; | ||
2700 | case IEEE80211_AMPDU_TX_START: | 2705 | case IEEE80211_AMPDU_TX_START: |
2701 | IWL_DEBUG_HT(priv, "start Tx\n"); | 2706 | IWL_DEBUG_HT(priv, "start Tx\n"); |
2702 | return iwl_tx_agg_start(priv, sta->addr, tid, ssn); | 2707 | return iwl_tx_agg_start(priv, sta->addr, tid, ssn); |
2703 | case IEEE80211_AMPDU_TX_STOP: | 2708 | case IEEE80211_AMPDU_TX_STOP: |
2704 | IWL_DEBUG_HT(priv, "stop Tx\n"); | 2709 | IWL_DEBUG_HT(priv, "stop Tx\n"); |
2705 | return iwl_tx_agg_stop(priv, sta->addr, tid); | 2710 | ret = iwl_tx_agg_stop(priv, sta->addr, tid); |
2711 | if (test_bit(STATUS_EXIT_PENDING, &priv->status)) | ||
2712 | return 0; | ||
2713 | else | ||
2714 | return ret; | ||
2706 | default: | 2715 | default: |
2707 | IWL_DEBUG_HT(priv, "unknown\n"); | 2716 | IWL_DEBUG_HT(priv, "unknown\n"); |
2708 | return -EINVAL; | 2717 | return -EINVAL; |