summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath9k/xmit.c
diff options
context:
space:
mode:
authorSenthil Balasubramanian2008-09-17 09:09:49 +0200
committerJohn W. Linville2008-09-22 22:52:50 +0200
commitd0be7cc7688d0cc2e4daf952c43b5ce86e5c8a1d (patch)
tree95590f674d49123be5950d33ddd3e2c7680da9d4 /drivers/net/wireless/ath9k/xmit.c
parentnetdev: simple_tx_hash shouldn't hash inside fragments (diff)
downloadkernel-qcow2-linux-d0be7cc7688d0cc2e4daf952c43b5ce86e5c8a1d.tar.gz
kernel-qcow2-linux-d0be7cc7688d0cc2e4daf952c43b5ce86e5c8a1d.tar.xz
kernel-qcow2-linux-d0be7cc7688d0cc2e4daf952c43b5ce86e5c8a1d.zip
ath9k: connectivity is lost after Group rekeying is done
Connectivtiy is lost after Group rekeying is done. The keytype maintained by ath9k is reset when group key is updated. Though sc_keytype can be reset only for broadcast key the proper fix would be to use mac80211 provided key type from txinfo during xmit and get rid of sc_keytype from ath9k ath_softc. Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> Signed-off-by: Senthil Balasubramanian <senthilkumar@atheros.com> Tested-by: Steven Noonan <steven@uplinklabs.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath9k/xmit.c')
-rw-r--r--drivers/net/wireless/ath9k/xmit.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath9k/xmit.c b/drivers/net/wireless/ath9k/xmit.c
index 550129f717e2..8b332e11a656 100644
--- a/drivers/net/wireless/ath9k/xmit.c
+++ b/drivers/net/wireless/ath9k/xmit.c
@@ -315,11 +315,11 @@ static int ath_tx_prepare(struct ath_softc *sc,
txctl->keyix = tx_info->control.hw_key->hw_key_idx;
txctl->frmlen += tx_info->control.icv_len;
- if (sc->sc_keytype == ATH9K_CIPHER_WEP)
+ if (tx_info->control.hw_key->alg == ALG_WEP)
txctl->keytype = ATH9K_KEY_TYPE_WEP;
- else if (sc->sc_keytype == ATH9K_CIPHER_TKIP)
+ else if (tx_info->control.hw_key->alg == ALG_TKIP)
txctl->keytype = ATH9K_KEY_TYPE_TKIP;
- else if (sc->sc_keytype == ATH9K_CIPHER_AES_CCM)
+ else if (tx_info->control.hw_key->alg == ALG_CCMP)
txctl->keytype = ATH9K_KEY_TYPE_AES;
}