aboutsummaryrefslogtreecommitdiffstats
path: root/package/mac80211
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-01-14 13:50:30 +0000
committerFelix Fietkau <nbd@openwrt.org>2012-01-14 13:50:30 +0000
commit87bbccb614bd6531f6c78e0ae5584c7077425a07 (patch)
tree9b8f490219b574c00bfc16f21f9159ae4678e7a2 /package/mac80211
parent66895b7115b97a84e8a616f1b433f5fcab09c44b (diff)
downloadupstream-87bbccb614bd6531f6c78e0ae5584c7077425a07.tar.gz
upstream-87bbccb614bd6531f6c78e0ae5584c7077425a07.tar.bz2
upstream-87bbccb614bd6531f6c78e0ae5584c7077425a07.zip
ath9k: fix handling of the KeyMiss flag for received packets - fixes connection stability issues with crypto enabled
SVN-Revision: 29745
Diffstat (limited to 'package/mac80211')
-rw-r--r--package/mac80211/patches/566-ath9k_fix_keymiss.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/package/mac80211/patches/566-ath9k_fix_keymiss.patch b/package/mac80211/patches/566-ath9k_fix_keymiss.patch
new file mode 100644
index 0000000000..d939e59965
--- /dev/null
+++ b/package/mac80211/patches/566-ath9k_fix_keymiss.patch
@@ -0,0 +1,32 @@
+--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
++++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
+@@ -558,10 +558,11 @@ int ath9k_hw_process_rxdesc_edma(struct
+ rxs->rs_status |= ATH9K_RXERR_DECRYPT;
+ else if (rxsp->status11 & AR_MichaelErr)
+ rxs->rs_status |= ATH9K_RXERR_MIC;
+- if (rxsp->status11 & AR_KeyMiss)
+- rxs->rs_status |= ATH9K_RXERR_KEYMISS;
+ }
+
++ if (rxsp->status11 & AR_KeyMiss)
++ rxs->rs_status |= ATH9K_RXERR_KEYMISS;
++
+ return 0;
+ }
+ EXPORT_SYMBOL(ath9k_hw_process_rxdesc_edma);
+--- a/drivers/net/wireless/ath/ath9k/mac.c
++++ b/drivers/net/wireless/ath/ath9k/mac.c
+@@ -621,10 +621,11 @@ int ath9k_hw_rxprocdesc(struct ath_hw *a
+ rs->rs_status |= ATH9K_RXERR_DECRYPT;
+ else if (ads.ds_rxstatus8 & AR_MichaelErr)
+ rs->rs_status |= ATH9K_RXERR_MIC;
+- if (ads.ds_rxstatus8 & AR_KeyMiss)
+- rs->rs_status |= ATH9K_RXERR_KEYMISS;
+ }
+
++ if (ads.ds_rxstatus8 & AR_KeyMiss)
++ rs->rs_status |= ATH9K_RXERR_KEYMISS;
++
+ return 0;
+ }
+ EXPORT_SYMBOL(ath9k_hw_rxprocdesc);