diff options
Diffstat (limited to 'drivers/net/wireless/mwl8k.c')
-rw-r--r-- | drivers/net/wireless/mwl8k.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c index cf7bdc66f822..224e03ade145 100644 --- a/drivers/net/wireless/mwl8k.c +++ b/drivers/net/wireless/mwl8k.c | |||
@@ -1665,7 +1665,9 @@ mwl8k_txq_reclaim(struct ieee80211_hw *hw, int index, int limit, int force) | |||
1665 | 1665 | ||
1666 | info = IEEE80211_SKB_CB(skb); | 1666 | info = IEEE80211_SKB_CB(skb); |
1667 | if (ieee80211_is_data(wh->frame_control)) { | 1667 | if (ieee80211_is_data(wh->frame_control)) { |
1668 | sta = info->control.sta; | 1668 | rcu_read_lock(); |
1669 | sta = ieee80211_find_sta_by_ifaddr(hw, wh->addr1, | ||
1670 | wh->addr2); | ||
1669 | if (sta) { | 1671 | if (sta) { |
1670 | sta_info = MWL8K_STA(sta); | 1672 | sta_info = MWL8K_STA(sta); |
1671 | BUG_ON(sta_info == NULL); | 1673 | BUG_ON(sta_info == NULL); |
@@ -1682,6 +1684,7 @@ mwl8k_txq_reclaim(struct ieee80211_hw *hw, int index, int limit, int force) | |||
1682 | sta_info->is_ampdu_allowed = true; | 1684 | sta_info->is_ampdu_allowed = true; |
1683 | } | 1685 | } |
1684 | } | 1686 | } |
1687 | rcu_read_unlock(); | ||
1685 | } | 1688 | } |
1686 | 1689 | ||
1687 | ieee80211_tx_info_clear_status(info); | 1690 | ieee80211_tx_info_clear_status(info); |