[PATCH V2] libertas: copy WPA keys to priv when associating

Dan Williams dcbw at redhat.com
Mon Jun 22 10:29:00 EDT 2009


On Wed, 2009-06-17 at 18:45 -0700, Andrey Yurovsky wrote:
> Libertas currently maintains a copy of the WPA unicast and group keys
> when using WPA or WPA2.  This copy is checked when deciding whether or
> not to return to sleep in IEEE PS mode but the actual copying back to
> priv was omitted, which breaks IEEE PS mode with WPA/WPA2 when one
> issues commands that require temporarily keeping the device awake.
> 
> This patch introduces the omitted copy-back of the keys so that IEEE PS
> functions correctly in WPA/WPA2 mode.  Thanks to Dan Williams for
> clearing up the issue.
> 
> V2: fix typo.  Also, this has been tested on GSPI and SDIO with V9 firmware.
> 
> Signed-off-by: Andrey Yurovsky <andrey at cozybit.com>

Acked-by: Dan Williams <dcbw at redhat.com>

Thanks!

> ---
>  drivers/net/wireless/libertas/assoc.c |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/net/wireless/libertas/assoc.c b/drivers/net/wireless/libertas/assoc.c
> index b9b3741..b7c7cb0 100644
> --- a/drivers/net/wireless/libertas/assoc.c
> +++ b/drivers/net/wireless/libertas/assoc.c
> @@ -1368,11 +1368,17 @@ static int assoc_helper_wpa_keys(struct lbs_private *priv,
>  	if (ret)
>  		goto out;
>  
> +	memcpy(&priv->wpa_unicast_key, &assoc_req->wpa_unicast_key,
> +			sizeof(struct enc_key));
> +
>  	if (test_bit(ASSOC_FLAG_WPA_MCAST_KEY, &assoc_req->flags)) {
>  		clear_bit(ASSOC_FLAG_WPA_UCAST_KEY, &assoc_req->flags);
>  
>  		ret = lbs_cmd_802_11_key_material(priv, CMD_ACT_SET, assoc_req);
>  		assoc_req->flags = flags;
> +
> +		memcpy(&priv->wpa_mcast_key, &assoc_req->wpa_mcast_key,
> +				sizeof(struct enc_key));
>  	}
>  
>  out:




More information about the libertas-dev mailing list