2008-12-18 12:31:17

by Jouni Malinen

[permalink] [raw]
Subject: [PATCH] ath9k: Fix key cache slot selection for splitmic

ath_reserve_key_cache_slot() was obviously supposed to return an index
to a free slot, not reserved one. This could have caused problems with
hardware revisions that use splitmic.

Signed-off-by: Jouni Malinen <[email protected]>
---
drivers/net/wireless/ath9k/main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- wireless-testing.orig/drivers/net/wireless/ath9k/main.c 2008-12-18 13:04:31.000000000 +0200
+++ wireless-testing/drivers/net/wireless/ath9k/main.c 2008-12-18 13:05:37.000000000 +0200
@@ -756,12 +756,12 @@ static int ath_reserve_key_cache_slot(st
(test_bit(i , sc->sc_keymap) ||
test_bit(i + 32, sc->sc_keymap) ||
test_bit(i + 64 + 32, sc->sc_keymap)))
- return i;
+ return i + 64;
if (!test_bit(i + 64 + 32, sc->sc_keymap) &&
(test_bit(i, sc->sc_keymap) ||
test_bit(i + 32, sc->sc_keymap) ||
test_bit(i + 64, sc->sc_keymap)))
- return i;
+ return i + 64 + 32;
}
} else {
for (i = IEEE80211_WEP_NKID; i < sc->sc_keymax / 2; i++) {

--
Jouni Malinen PGP id EFC895FA