diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-tx.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-tx.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c index 888a8e9fe9ef..58b132f9cf28 100644 --- a/drivers/net/wireless/iwlwifi/iwl-tx.c +++ b/drivers/net/wireless/iwlwifi/iwl-tx.c | |||
@@ -1350,8 +1350,16 @@ int iwl_tx_agg_stop(struct iwl_priv *priv , const u8 *ra, u16 tid) | |||
1350 | return -ENXIO; | 1350 | return -ENXIO; |
1351 | } | 1351 | } |
1352 | 1352 | ||
1353 | if (priv->stations[sta_id].tid[tid].agg.state == | ||
1354 | IWL_EMPTYING_HW_QUEUE_ADDBA) { | ||
1355 | IWL_DEBUG_HT(priv, "AGG stop before setup done\n"); | ||
1356 | ieee80211_stop_tx_ba_cb_irqsafe(priv->hw, ra, tid); | ||
1357 | priv->stations[sta_id].tid[tid].agg.state = IWL_AGG_OFF; | ||
1358 | return 0; | ||
1359 | } | ||
1360 | |||
1353 | if (priv->stations[sta_id].tid[tid].agg.state != IWL_AGG_ON) | 1361 | if (priv->stations[sta_id].tid[tid].agg.state != IWL_AGG_ON) |
1354 | IWL_WARN(priv, "Stopping AGG while state not IWL_AGG_ON\n"); | 1362 | IWL_WARN(priv, "Stopping AGG while state not ON or starting\n"); |
1355 | 1363 | ||
1356 | tid_data = &priv->stations[sta_id].tid[tid]; | 1364 | tid_data = &priv->stations[sta_id].tid[tid]; |
1357 | ssn = (tid_data->seq_number & IEEE80211_SCTL_SEQ) >> 4; | 1365 | ssn = (tid_data->seq_number & IEEE80211_SCTL_SEQ) >> 4; |