|
@@ -1170,8 +1170,10 @@ int iwl_tx_agg_start(struct iwl_priv *priv, const u8 *ra, u16 tid, u16 *ssn)
|
|
|
__func__, ra, tid);
|
|
|
|
|
|
sta_id = iwl_find_station(priv, ra);
|
|
|
- if (sta_id == IWL_INVALID_STATION)
|
|
|
+ if (sta_id == IWL_INVALID_STATION) {
|
|
|
+ IWL_ERR(priv, "Start AGG on invalid station\n");
|
|
|
return -ENXIO;
|
|
|
+ }
|
|
|
|
|
|
if (priv->stations[sta_id].tid[tid].agg.state != IWL_AGG_OFF) {
|
|
|
IWL_ERR(priv, "Start AGG when state is not IWL_AGG_OFF !\n");
|
|
@@ -1179,8 +1181,10 @@ int iwl_tx_agg_start(struct iwl_priv *priv, const u8 *ra, u16 tid, u16 *ssn)
|
|
|
}
|
|
|
|
|
|
txq_id = iwl_txq_ctx_activate_free(priv);
|
|
|
- if (txq_id == -1)
|
|
|
+ if (txq_id == -1) {
|
|
|
+ IWL_ERR(priv, "No free aggregation queue available\n");
|
|
|
return -ENXIO;
|
|
|
+ }
|
|
|
|
|
|
spin_lock_irqsave(&priv->sta_lock, flags);
|
|
|
tid_data = &priv->stations[sta_id].tid[tid];
|
|
@@ -1194,7 +1198,7 @@ int iwl_tx_agg_start(struct iwl_priv *priv, const u8 *ra, u16 tid, u16 *ssn)
|
|
|
return ret;
|
|
|
|
|
|
if (tid_data->tfds_in_queue == 0) {
|
|
|
- IWL_ERR(priv, "HW queue is empty\n");
|
|
|
+ IWL_DEBUG_HT(priv, "HW queue is empty\n");
|
|
|
tid_data->agg.state = IWL_AGG_ON;
|
|
|
ieee80211_start_tx_ba_cb_irqsafe(priv->hw, ra, tid);
|
|
|
} else {
|