diff options
author | Kalle Valo <kvalo@qca.qualcomm.com> | 2013-11-13 08:23:30 -0500 |
---|---|---|
committer | Kalle Valo <kvalo@qca.qualcomm.com> | 2013-11-15 04:00:33 -0500 |
commit | 652de35e86da3e206fbfa40bca254b028b6403b6 (patch) | |
tree | e97a6ea80c8519a01db091ad2bb28d68b3c398f5 /drivers/net/wireless/ath/ath10k/htt_rx.c | |
parent | c4dd0d01da8979bd5c7f4367661115617bc389ea (diff) |
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>
Diffstat (limited to 'drivers/net/wireless/ath/ath10k/htt_rx.c')
-rw-r--r-- | drivers/net/wireless/ath/ath10k/htt_rx.c | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c index 90d4f74c28d7..0335218ad579 100644 --- a/drivers/net/wireless/ath/ath10k/htt_rx.c +++ b/drivers/net/wireless/ath/ath10k/htt_rx.c | |||
@@ -659,23 +659,6 @@ static void ath10k_htt_rx_amsdu(struct ath10k_htt *htt, | |||
659 | memcpy(hdr_buf, hdr, hdr_len); | 659 | memcpy(hdr_buf, hdr, hdr_len); |
660 | hdr = (struct ieee80211_hdr *)hdr_buf; | 660 | hdr = (struct ieee80211_hdr *)hdr_buf; |
661 | 661 | ||
662 | /* FIXME: Hopefully this is a temporary measure. | ||
663 | * | ||
664 | * Reporting individual A-MSDU subframes means each reported frame | ||
665 | * shares the same sequence number. | ||
666 | * | ||
667 | * mac80211 drops frames it recognizes as duplicates, i.e. | ||
668 | * retransmission flag is set and sequence number matches sequence | ||
669 | * number from a previous frame (as per IEEE 802.11-2012: 9.3.2.10 | ||
670 | * "Duplicate detection and recovery") | ||
671 | * | ||
672 | * To avoid frames being dropped clear retransmission flag for all | ||
673 | * received A-MSDUs. | ||
674 | * | ||
675 | * Worst case: actual duplicate frames will be reported but this should | ||
676 | * still be handled gracefully by other OSI/ISO layers. */ | ||
677 | hdr->frame_control &= cpu_to_le16(~IEEE80211_FCTL_RETRY); | ||
678 | |||
679 | first = skb; | 662 | first = skb; |
680 | while (skb) { | 663 | while (skb) { |
681 | void *decap_hdr; | 664 | void *decap_hdr; |
@@ -746,6 +729,9 @@ static void ath10k_htt_rx_amsdu(struct ath10k_htt *htt, | |||
746 | skb = skb->next; | 729 | skb = skb->next; |
747 | info->skb->next = NULL; | 730 | info->skb->next = NULL; |
748 | 731 | ||
732 | if (skb) | ||
733 | info->amsdu_more = true; | ||
734 | |||
749 | ath10k_process_rx(htt->ar, info); | 735 | ath10k_process_rx(htt->ar, info); |
750 | } | 736 | } |
751 | 737 | ||