summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-09-17 08:41:54 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-09-17 08:41:54 +0000
commite8135790c4e82c08cf18a9802ce2552588c2f51a (patch)
treeef76ea13549f9a6d9da0ba445296975c10fdd335
parente9c2d71d9206568fa901119d1ed697915aa539f3 (diff)
ath9k: do not strip MMIC for key miss frames
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28252 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--package/mac80211/patches/551-ath9k_fix_keymiss_handling.patch16
1 files changed, 13 insertions, 3 deletions
diff --git a/package/mac80211/patches/551-ath9k_fix_keymiss_handling.patch b/package/mac80211/patches/551-ath9k_fix_keymiss_handling.patch
index 66ea9a7c01..931c50e0ce 100644
--- a/package/mac80211/patches/551-ath9k_fix_keymiss_handling.patch
+++ b/package/mac80211/patches/551-ath9k_fix_keymiss_handling.patch
@@ -36,7 +36,17 @@
#define ATH9K_RX_MORE_AGGR 0x02
--- a/drivers/net/wireless/ath/ath9k/recv.c
+++ b/drivers/net/wireless/ath/ath9k/recv.c
-@@ -854,6 +854,8 @@ static bool ath9k_rx_accept(struct ath_c
+@@ -826,7 +826,8 @@ static bool ath9k_rx_accept(struct ath_c
+ test_bit(rx_stats->rs_keyix, common->tkip_keymap);
+ strip_mic = is_valid_tkip && ieee80211_is_data(fc) &&
+ !(rx_stats->rs_status &
+- (ATH9K_RXERR_DECRYPT | ATH9K_RXERR_CRC | ATH9K_RXERR_MIC));
++ (ATH9K_RXERR_DECRYPT | ATH9K_RXERR_CRC | ATH9K_RXERR_MIC |
++ ATH9K_RXERR_KEYMISS));
+
+ if (!rx_stats->rs_datalen)
+ return false;
+@@ -854,6 +855,8 @@ static bool ath9k_rx_accept(struct ath_c
* descriptors.
*/
if (rx_stats->rs_status != 0) {
@@ -45,7 +55,7 @@
if (rx_stats->rs_status & ATH9K_RXERR_CRC) {
rxs->flag |= RX_FLAG_FAILED_FCS_CRC;
mic_error = false;
-@@ -861,7 +863,8 @@ static bool ath9k_rx_accept(struct ath_c
+@@ -861,7 +864,8 @@ static bool ath9k_rx_accept(struct ath_c
if (rx_stats->rs_status & ATH9K_RXERR_PHY)
return false;
@@ -55,7 +65,7 @@
*decrypt_error = true;
mic_error = false;
}
-@@ -871,17 +874,14 @@ static bool ath9k_rx_accept(struct ath_c
+@@ -871,17 +875,14 @@ static bool ath9k_rx_accept(struct ath_c
* decryption and MIC failures. For monitor mode,
* we also ignore the CRC error.
*/