aboutsummaryrefslogtreecommitdiffstats
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
commit275452c5914752f43a0b333d82a5a18f989fe08f (patch)
tree824ab34c0c24b3001583c60bd6c1471b42c95216
parent08351a20634a7f158c50ee2171afd65aec70dff4 (diff)
downloadupstream-275452c5914752f43a0b333d82a5a18f989fe08f.tar.gz
upstream-275452c5914752f43a0b333d82a5a18f989fe08f.tar.bz2
upstream-275452c5914752f43a0b333d82a5a18f989fe08f.zip
ath9k: fix handling of the KeyMiss flag for received packets - fixes connection stability issues with crypto enabled
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29745 3c298f89-4303-0410-b956-a3cf2f4a3e73
-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);