2012-02-13 16:20:54 +00:00
|
|
|
From f88373fa47f3ce6590fdfaa742d0ddacc2ae017f Mon Sep 17 00:00:00 2001
|
2012-02-06 16:30:40 +00:00
|
|
|
From: Felix Fietkau <nbd@openwrt.org>
|
2012-02-13 16:20:54 +00:00
|
|
|
Date: Sun, 5 Feb 2012 21:15:17 +0100
|
|
|
|
Subject: [PATCH] ath9k: fix a WEP crypto related regression
|
2012-02-06 16:30:40 +00:00
|
|
|
|
|
|
|
commit b4a82a0 "ath9k_hw: fix interpretation of the rx KeyMiss flag"
|
|
|
|
fixed the interpretation of the KeyMiss flag for keycache based lookups,
|
|
|
|
however WEP encryption uses a static index, so KeyMiss is always asserted
|
|
|
|
for it, even though frames are decrypted properly.
|
|
|
|
Fix this by clearing the ATH9K_RXERR_KEYMISS flag if no keycache based
|
|
|
|
lookup was performed.
|
|
|
|
|
|
|
|
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
|
|
|
Cc: stable@vger.kernel.org
|
|
|
|
Reported-by: Laurent Bonnans <bonnans.l@gmail.com>
|
|
|
|
Reported-by: Jurica Vukadin <u.ra604@googlemail.com>
|
2012-02-13 16:20:54 +00:00
|
|
|
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
2012-02-06 16:30:40 +00:00
|
|
|
---
|
|
|
|
drivers/net/wireless/ath/ath9k/recv.c | 8 ++++++++
|
|
|
|
1 files changed, 8 insertions(+), 0 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c
|
|
|
|
index 0e666fb..7e1a91a 100644
|
|
|
|
--- a/drivers/net/wireless/ath/ath9k/recv.c
|
|
|
|
+++ b/drivers/net/wireless/ath/ath9k/recv.c
|
|
|
|
@@ -822,6 +822,14 @@ static bool ath9k_rx_accept(struct ath_common *common,
|
|
|
|
(ATH9K_RXERR_DECRYPT | ATH9K_RXERR_CRC | ATH9K_RXERR_MIC |
|
|
|
|
ATH9K_RXERR_KEYMISS));
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Key miss events are only relevant for pairwise keys where the
|
|
|
|
+ * descriptor does contain a valid key index. This has been observed
|
|
|
|
+ * mostly with CCMP encryption.
|
|
|
|
+ */
|
|
|
|
+ if (rx_stats->rs_keyix == ATH9K_RXKEYIX_INVALID)
|
|
|
|
+ rx_stats->rs_status &= ~ATH9K_RXERR_KEYMISS;
|
|
|
|
+
|
|
|
|
if (!rx_stats->rs_datalen)
|
|
|
|
return false;
|
|
|
|
/*
|
|
|
|
--
|
2012-02-13 16:20:54 +00:00
|
|
|
1.7.4.4
|
2012-02-06 16:30:40 +00:00
|
|
|
|