mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 17:46:40 +07:00
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>
This commit is contained in:
parent
ad55dcaff0
commit
d0be7cc768
@ -974,7 +974,6 @@ struct ath_softc {
|
||||
u32 sc_keymax; /* size of key cache */
|
||||
DECLARE_BITMAP(sc_keymap, ATH_KEYMAX); /* key use bit map */
|
||||
u8 sc_splitmic; /* split TKIP MIC keys */
|
||||
int sc_keytype;
|
||||
|
||||
/* RX */
|
||||
struct list_head sc_rxbuf;
|
||||
|
@ -206,8 +206,6 @@ static int ath_key_config(struct ath_softc *sc,
|
||||
if (!ret)
|
||||
return -EIO;
|
||||
|
||||
if (mac)
|
||||
sc->sc_keytype = hk.kv_type;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -778,7 +776,6 @@ static int ath9k_set_key(struct ieee80211_hw *hw,
|
||||
case DISABLE_KEY:
|
||||
ath_key_delete(sc, key);
|
||||
clear_bit(key->keyidx, sc->sc_keymap);
|
||||
sc->sc_keytype = ATH9K_CIPHER_CLR;
|
||||
break;
|
||||
default:
|
||||
ret = -EINVAL;
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user