From mboxrd@z Thu Jan 1 00:00:00 1970 From: Date: Mon, 28 Jul 2008 04:41:12 -0000 Subject: No subject Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: ath9k-devel@lists.ath9k.org 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 Signed-off-by: Senthil Balasubramanian --- drivers/net/wireless/ath9k/core.h | 1 - drivers/net/wireless/ath9k/main.c | 3 --- drivers/net/wireless/ath9k/xmit.c | 6 +++--- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k= /core.h index b66de29..e8ccbe4 100644 --- a/drivers/net/wireless/ath9k/core.h +++ b/drivers/net/wireless/ath9k/core.h @@ -976,7 +976,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; diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k= /main.c index 1ba1800..aca893a 100644 --- a/drivers/net/wireless/ath9k/main.c +++ b/drivers/net/wireless/ath9k/main.c @@ -204,8 +204,6 @@ static int ath_key_config(struct ath_softc *sc, if (!ret) return -EIO; - if (mac) - sc->sc_keytype =3D hk.kv_type; return 0; } @@ -1507,7 +1505,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 =3D ATH9K_CIPHER_CLR; break; default: ret =3D -EINVAL; diff --git a/drivers/net/wireless/ath9k/xmit.c b/drivers/net/wireless/ath9k= /xmit.c index 3fc6641..2592905 100644 --- a/drivers/net/wireless/ath9k/xmit.c +++ b/drivers/net/wireless/ath9k/xmit.c @@ -239,11 +239,11 @@ static int ath_tx_prepare(struct ath_softc *sc, txctl->keyix =3D tx_info->control.hw_key->hw_key_idx; txctl->frmlen +=3D tx_info->control.icv_len; - if (sc->sc_keytype =3D=3D ATH9K_CIPHER_WEP) + if (tx_info->control.hw_key->alg =3D=3D ALG_WEP) txctl->keytype =3D ATH9K_KEY_TYPE_WEP; - else if (sc->sc_keytype =3D=3D ATH9K_CIPHER_TKIP) + else if (tx_info->control.hw_key->alg =3D=3D ALG_TKIP) txctl->keytype =3D ATH9K_KEY_TYPE_TKIP; - else if (sc->sc_keytype =3D=3D ATH9K_CIPHER_AES_CCM) + else if (tx_info->control.hw_key->alg =3D=3D ALG_CCMP) txctl->keytype =3D ATH9K_KEY_TYPE_AES; } -- 1.5.5 --opJtzjQTFsWo+cga Content-Type: text/x-diff; charset="us-ascii" Content-Disposition: attachment; filename="connectivity.patch"