mirror of
https://github.com/torvalds/linux.git
synced 2024-12-29 14:21:47 +00:00
ath10k: remove htt rx amsdu clear retry bit hack
With commit 0cfcefef1
("mac80211: support reporting A-MSDU subframes
individually") there's no need to have the hack to clear the retry bit in
ath10k_htt_rx_amsdu(), mac80211 can handle this properly now.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
parent
c4dd0d01da
commit
652de35e86
@ -1182,6 +1182,7 @@ struct htt_rx_info {
|
||||
u32 info2;
|
||||
} rate;
|
||||
bool fcs_err;
|
||||
bool amsdu_more;
|
||||
};
|
||||
|
||||
struct ath10k_htt {
|
||||
|
@ -659,23 +659,6 @@ static void ath10k_htt_rx_amsdu(struct ath10k_htt *htt,
|
||||
memcpy(hdr_buf, hdr, hdr_len);
|
||||
hdr = (struct ieee80211_hdr *)hdr_buf;
|
||||
|
||||
/* FIXME: Hopefully this is a temporary measure.
|
||||
*
|
||||
* Reporting individual A-MSDU subframes means each reported frame
|
||||
* shares the same sequence number.
|
||||
*
|
||||
* mac80211 drops frames it recognizes as duplicates, i.e.
|
||||
* retransmission flag is set and sequence number matches sequence
|
||||
* number from a previous frame (as per IEEE 802.11-2012: 9.3.2.10
|
||||
* "Duplicate detection and recovery")
|
||||
*
|
||||
* To avoid frames being dropped clear retransmission flag for all
|
||||
* received A-MSDUs.
|
||||
*
|
||||
* Worst case: actual duplicate frames will be reported but this should
|
||||
* still be handled gracefully by other OSI/ISO layers. */
|
||||
hdr->frame_control &= cpu_to_le16(~IEEE80211_FCTL_RETRY);
|
||||
|
||||
first = skb;
|
||||
while (skb) {
|
||||
void *decap_hdr;
|
||||
@ -746,6 +729,9 @@ static void ath10k_htt_rx_amsdu(struct ath10k_htt *htt,
|
||||
skb = skb->next;
|
||||
info->skb->next = NULL;
|
||||
|
||||
if (skb)
|
||||
info->amsdu_more = true;
|
||||
|
||||
ath10k_process_rx(htt->ar, info);
|
||||
}
|
||||
|
||||
|
@ -236,6 +236,9 @@ void ath10k_process_rx(struct ath10k *ar, struct htt_rx_info *info)
|
||||
if (info->fcs_err)
|
||||
status->flag |= RX_FLAG_FAILED_FCS_CRC;
|
||||
|
||||
if (info->amsdu_more)
|
||||
status->flag |= RX_FLAG_AMSDU_MORE;
|
||||
|
||||
status->signal = info->signal;
|
||||
|
||||
spin_lock_bh(&ar->data_lock);
|
||||
|
Loading…
Reference in New Issue
Block a user