diff options
author | David Lin <dlin@marvell.com> | 2015-11-30 11:53:33 +0800 |
---|---|---|
committer | David Lin <dlin@marvell.com> | 2015-11-30 11:53:33 +0800 |
commit | 352efe4bdc34204cc528ac9a979bb0032a6996e0 (patch) | |
tree | 0bc8f0b396fdf9b5cbb092d71d95bc01faa7fb9b | |
parent | 6a147a2fbe07c2ac45b593d9f8227539fefb84e8 (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.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -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); |