Search Linux Wireless

Re: [PATCH] ath9k: connectivity is lost after Group rekeying is done

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Senthil Balasubramanian <senthilkumar@xxxxxxxxxxx> writes:
>
> 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@xxxxxxxxxxx>
> Signed-off-by: Senthil Balasubramanian <senthilkumar@xxxxxxxxxxx>
> ---
>  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 = 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 = ATH9K_CIPHER_CLR;
>  		break;
>  	default:
>  		ret = -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 = 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;
>  	}
>

Tested-by: Steven Noonan <steven@xxxxxxxxxxxxxx>

I was actually writing a pretty much identical patch locally, and was
in the middle of testing it when I saw this one. I wish I'd been
faster to get mine tested and out the door.

- Steven
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux