ath9k: fix a WEP crypto related regression (Closes: #659484)

svn path=/dists/trunk/linux-2.6/; revision=18696
This commit is contained in:
Ben Hutchings 2012-02-16 02:36:23 +00:00
parent 951b4546d2
commit 0650fa8178
3 changed files with 45 additions and 0 deletions

1
debian/changelog vendored
View File

@ -30,6 +30,7 @@ linux-2.6 (3.2.6-1) UNRELEASED; urgency=low
module-init-tools
* relay: prevent integer overflow in relay_open()
* builddeb: Don't create files in /tmp with predictable names
* ath9k: fix a WEP crypto related regression (Closes: #659484)
-- Bastian Blank <waldi@debian.org> Mon, 06 Feb 2012 11:22:07 +0100

View File

@ -0,0 +1,43 @@
From f88373fa47f3ce6590fdfaa742d0ddacc2ae017f Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Sun, 5 Feb 2012 21:15:17 +0100
Subject: ath9k: fix a WEP crypto related regression
From: Felix Fietkau <nbd@openwrt.org>
commit f88373fa47f3ce6590fdfaa742d0ddacc2ae017f upstream.
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>
Reported-by: Laurent Bonnans <bonnans.l@gmail.com>
Reported-by: Jurica Vukadin <u.ra604@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/wireless/ath/ath9k/recv.c | 8 ++++++++
1 file changed, 8 insertions(+)
--- a/drivers/net/wireless/ath/ath9k/recv.c
+++ b/drivers/net/wireless/ath/ath9k/recv.c
@@ -824,6 +824,14 @@ static bool ath9k_rx_accept(struct ath_c
(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;
/*

View File

@ -79,3 +79,4 @@
+ bugfix/all/relay-prevent-integer-overflow-in-relay_open.patch
+ bugfix/all/builddeb-Don-t-create-files-in-tmp-with-predictable-.patch
+ bugfix/all/ath9k-fix-a-wep-crypto-related-regression.patch