|
@@ -57,8 +57,6 @@ void ath10k_txrx_tx_unref(struct ath10k_htt *htt,
|
|
struct ieee80211_tx_info *info;
|
|
struct ieee80211_tx_info *info;
|
|
struct ath10k_skb_cb *skb_cb;
|
|
struct ath10k_skb_cb *skb_cb;
|
|
struct sk_buff *msdu;
|
|
struct sk_buff *msdu;
|
|
- struct ieee80211_hdr *hdr;
|
|
|
|
- __le16 fc;
|
|
|
|
bool limit_mgmt_desc = false;
|
|
bool limit_mgmt_desc = false;
|
|
|
|
|
|
ath10k_dbg(ar, ATH10K_DBG_HTT,
|
|
ath10k_dbg(ar, ATH10K_DBG_HTT,
|
|
@@ -81,10 +79,9 @@ void ath10k_txrx_tx_unref(struct ath10k_htt *htt,
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- hdr = (struct ieee80211_hdr *)msdu->data;
|
|
|
|
- fc = hdr->frame_control;
|
|
|
|
|
|
+ skb_cb = ATH10K_SKB_CB(msdu);
|
|
|
|
|
|
- if (unlikely(ieee80211_is_mgmt(fc)) &&
|
|
|
|
|
|
+ if (unlikely(skb_cb->flags & ATH10K_SKB_F_MGMT) &&
|
|
ar->hw_params.max_probe_resp_desc_thres)
|
|
ar->hw_params.max_probe_resp_desc_thres)
|
|
limit_mgmt_desc = true;
|
|
limit_mgmt_desc = true;
|
|
|
|
|
|
@@ -94,7 +91,6 @@ void ath10k_txrx_tx_unref(struct ath10k_htt *htt,
|
|
wake_up(&htt->empty_tx_wq);
|
|
wake_up(&htt->empty_tx_wq);
|
|
spin_unlock_bh(&htt->tx_lock);
|
|
spin_unlock_bh(&htt->tx_lock);
|
|
|
|
|
|
- skb_cb = ATH10K_SKB_CB(msdu);
|
|
|
|
dma_unmap_single(dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE);
|
|
dma_unmap_single(dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE);
|
|
|
|
|
|
ath10k_report_offchan_tx(htt->ar, msdu);
|
|
ath10k_report_offchan_tx(htt->ar, msdu);
|