From 987edc2f04139d7224b6a7cf523a03e746a86811 Mon Sep 17 00:00:00 2001 From: Emmanuel Grumbach Date: Wed, 23 Nov 2011 10:52:20 +0200 Subject: [PATCH] --- yaml --- r: 279185 b: refs/heads/master c: 97756fb1c39d58b76ee1488ac894ee81eaf17ba9 h: refs/heads/master i: 279183: 146c0ed668272ccf48d6e7ebe99a4432731e3155 v: v3 --- [refs] | 2 +- .../drivers/net/wireless/iwlwifi/iwl-agn-tx.c | 11 ++++++++ .../net/wireless/iwlwifi/iwl-trans-pcie.c | 26 ++++--------------- 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/[refs] b/[refs] index cc26db3eaa68..3d3ea85b6fde 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 34b5321e4f8bb71fd9b2190d6aad4646486c4ba6 +refs/heads/master: 97756fb1c39d58b76ee1488ac894ee81eaf17ba9 diff --git a/trunk/drivers/net/wireless/iwlwifi/iwl-agn-tx.c b/trunk/drivers/net/wireless/iwlwifi/iwl-agn-tx.c index 8db9144d7017..88ee5579ba7c 100644 --- a/trunk/drivers/net/wireless/iwlwifi/iwl-agn-tx.c +++ b/trunk/drivers/net/wireless/iwlwifi/iwl-agn-tx.c @@ -377,6 +377,17 @@ int iwlagn_tx_skb(struct iwl_priv *priv, struct sk_buff *skb) goto drop_unlock_sta; tid_data = &priv->shrd->tid_data[sta_id][tid]; + /* aggregation is on for this */ + if (info->flags & IEEE80211_TX_CTL_AMPDU && + tid_data->agg.state != IWL_AGG_ON) { + IWL_ERR(priv, "TX_CTL_AMPDU while not in AGG:" + " Tx flags = 0x%08x, agg.state = %d", + info->flags, tid_data->agg.state); + IWL_ERR(priv, "sta_id = %d, tid = %d seq_num = %d", + sta_id, tid, SEQ_TO_SN(tid_data->seq_number)); + goto drop_unlock_sta; + } + seq_number = tid_data->seq_number; seq_number &= IEEE80211_SCTL_SEQ; hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG); diff --git a/trunk/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c b/trunk/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c index 06db602b41db..cfa0bf6cafd1 100644 --- a/trunk/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c +++ b/trunk/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c @@ -1058,7 +1058,6 @@ static int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb, dma_addr_t txcmd_phys; dma_addr_t scratch_phys; u16 len, firstlen, secondlen; - u16 seq_number = 0; u8 wait_write_ptr = 0; u8 txq_id; bool is_agg = false; @@ -1084,26 +1083,11 @@ static int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb, txq_id = trans_pcie->ac_to_queue[ctx][skb_get_queue_mapping(skb)]; - if (ieee80211_is_data_qos(fc) && !ieee80211_is_qos_nullfunc(fc)) { - struct iwl_tid_data *tid_data; - tid_data = &trans->shrd->tid_data[sta_id][tid]; - if (WARN_ON_ONCE(tid >= IWL_MAX_TID_COUNT)) - return -1; - - /* aggregation is on for this */ - if (info->flags & IEEE80211_TX_CTL_AMPDU) { - if (WARN_ON_ONCE(tid_data->agg.state != IWL_AGG_ON)) { - IWL_ERR(trans, "TX_CTL_AMPDU while not in AGG:" - " Tx flags = 0x%08x, agg.state = %d", - info->flags, tid_data->agg.state); - IWL_ERR(trans, "sta_id = %d, tid = %d " - "txq_id = %d, seq_num = %d", sta_id, - tid, trans_pcie->agg_txq[sta_id][tid], - SEQ_TO_SN(seq_number)); - } - txq_id = trans_pcie->agg_txq[sta_id][tid]; - is_agg = true; - } + /* aggregation is on for this */ + if (info->flags & IEEE80211_TX_CTL_AMPDU) { + WARN_ON(tid >= IWL_MAX_TID_COUNT); + txq_id = trans_pcie->agg_txq[sta_id][tid]; + is_agg = true; } txq = &trans_pcie->txq[txq_id];