summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Lin <dlin@marvell.com>2015-11-30 11:53:33 +0800
committerDavid Lin <dlin@marvell.com>2015-11-30 11:53:33 +0800
commit352efe4bdc34204cc528ac9a979bb0032a6996e0 (patch)
tree0bc8f0b396fdf9b5cbb092d71d95bc01faa7fb9b
parent6a147a2fbe07c2ac45b593d9f8227539fefb84e8 (diff)
Fixed kernel panic problem:
mwl_tx_del_ampdu_pkts() uses tid to access tx descriptor directly. Tid shoud be mapped to AC first before acessing tx descriptor. Signen-off-by: David Lin <dlin@marvell.com>
-rw-r--r--tx.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/tx.c b/tx.c
index ac12aec..cb5cafd 100644
--- a/tx.c
+++ b/tx.c
@@ -1040,13 +1040,15 @@ void mwl_tx_del_ampdu_pkts(struct ieee80211_hw *hw,
{
struct mwl_priv *priv = hw->priv;
struct mwl_sta *sta_info = mwl_dev_get_sta(sta);
- int desc_num = SYSADPT_TX_WMM_QUEUES - tid - 1;
+ int ac, desc_num;
struct mwl_amsdu_frag *amsdu_frag;
struct sk_buff *skb, *tmp;
struct ieee80211_tx_info *tx_info;
struct mwl_tx_ctrl *tx_ctrl;
struct sk_buff_head *amsdu_pkts;
+ ac = mwl_tx_tid_queue_mapping(tid);
+ desc_num = SYSADPT_TX_WMM_QUEUES - ac - 1;
spin_lock_bh(&priv->txq[desc_num].lock);
skb_queue_walk_safe(&priv->txq[desc_num], skb, tmp) {
tx_info = IEEE80211_SKB_CB(skb);