diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath10k/htt_tx.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath10k/htt_tx.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath10k/htt_tx.c b/drivers/net/wireless/ath/ath10k/htt_tx.c index 2ef717f18795..a182c0944cc7 100644 --- a/drivers/net/wireless/ath/ath10k/htt_tx.c +++ b/drivers/net/wireless/ath/ath10k/htt_tx.c | |||
| @@ -1237,6 +1237,7 @@ static int ath10k_htt_tx_hl(struct ath10k_htt *htt, enum ath10k_hw_txrx_mode txm | |||
| 1237 | struct ath10k *ar = htt->ar; | 1237 | struct ath10k *ar = htt->ar; |
| 1238 | int res, data_len; | 1238 | int res, data_len; |
| 1239 | struct htt_cmd_hdr *cmd_hdr; | 1239 | struct htt_cmd_hdr *cmd_hdr; |
| 1240 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)msdu->data; | ||
| 1240 | struct htt_data_tx_desc *tx_desc; | 1241 | struct htt_data_tx_desc *tx_desc; |
| 1241 | struct ath10k_skb_cb *skb_cb = ATH10K_SKB_CB(msdu); | 1242 | struct ath10k_skb_cb *skb_cb = ATH10K_SKB_CB(msdu); |
| 1242 | struct sk_buff *tmp_skb; | 1243 | struct sk_buff *tmp_skb; |
| @@ -1247,6 +1248,13 @@ static int ath10k_htt_tx_hl(struct ath10k_htt *htt, enum ath10k_hw_txrx_mode txm | |||
| 1247 | u16 flags1 = 0; | 1248 | u16 flags1 = 0; |
| 1248 | u16 msdu_id = 0; | 1249 | u16 msdu_id = 0; |
| 1249 | 1250 | ||
| 1251 | if ((ieee80211_is_action(hdr->frame_control) || | ||
| 1252 | ieee80211_is_deauth(hdr->frame_control) || | ||
| 1253 | ieee80211_is_disassoc(hdr->frame_control)) && | ||
| 1254 | ieee80211_has_protected(hdr->frame_control)) { | ||
| 1255 | skb_put(msdu, IEEE80211_CCMP_MIC_LEN); | ||
| 1256 | } | ||
| 1257 | |||
| 1250 | data_len = msdu->len; | 1258 | data_len = msdu->len; |
| 1251 | 1259 | ||
| 1252 | switch (txmode) { | 1260 | switch (txmode) { |
