[PATCH] libertas: implement new scanning logic

Dan Williams dcbw at redhat.com
Fri Dec 7 13:24:17 EST 2007


On Fri, 2007-12-07 at 18:19 +0000, David Woodhouse wrote:
> On Fri, 2007-12-07 at 13:09 -0500, Dan Williams wrote:
> > On Fri, 2007-12-07 at 18:05 +0000, David Woodhouse wrote:
> > > On Fri, 2007-12-07 at 12:57 -0500, Dan Williams wrote:
> > > > Yeah, go ahead.  I got distracted because of changes in > 2.6.23 kernels
> > > > that cause the driver not to build there, and haven't chased them down
> > > > yet.
> > > 
> > > Hm, it's building for me. Where can I get hold of hardware?
> > 
> > Either get some from Manas, or find me.
> 
> I'll be in Boston next week. I'll try to find you.
> 
> Btw, is there any particular reason we're setting IW_ENCODE_NOKEY in
> lbs_get_encode()? Looks like we aren't returning it for WPA, but we
> could return it in WEP modes. This seems to work...

In GIWENCODE, NOKEY is supposed to mean that the key is write-only and
can't be read out of the card's registers or firmware.  This one came
over when harmonizing the libertas handlers with airo.  Since libertas
always caches the keys (both WEP and WPA) internally, it doesn't ever
need to set NOKEY in GIWENCODE because they are always available.

You can really just take that NOKEY line out completely, you don't need
anything else in this patch.

Dan

> diff --git a/drivers/net/wireless/libertas/wext.c b/drivers/net/wireless/libertas/wext.c
> index b8c93c0..1af140b 100644
> --- a/drivers/net/wireless/libertas/wext.c
> +++ b/drivers/net/wireless/libertas/wext.c
> @@ -1122,14 +1122,6 @@ static int lbs_get_encode(struct net_device *dev,
>  		break;
>  	}
>  
> -	if (   adapter->secinfo.wep_enabled
> -	    || adapter->secinfo.WPAenabled
> -	    || adapter->secinfo.WPA2enabled) {
> -		dwrq->flags &= ~IW_ENCODE_DISABLED;
> -	} else {
> -		dwrq->flags |= IW_ENCODE_DISABLED;
> -	}
> -
>  	memset(extra, 0, 16);
>  
>  	mutex_lock(&adapter->lock);
> @@ -1150,14 +1142,13 @@ static int lbs_get_encode(struct net_device *dev,
>  		   || (adapter->secinfo.WPA2enabled)) {
>  		/* return WPA enabled */
>  		dwrq->flags &= ~IW_ENCODE_DISABLED;
> +		dwrq->flags |= IW_ENCODE_NOKEY;
>  	} else {
>  		dwrq->flags |= IW_ENCODE_DISABLED;
>  	}
>  
>  	mutex_unlock(&adapter->lock);
>  
> -	dwrq->flags |= IW_ENCODE_NOKEY;
> -
>  	lbs_deb_wext("key: %02x:%02x:%02x:%02x:%02x:%02x, keylen %d\n",
>  	       extra[0], extra[1], extra[2],
>  	       extra[3], extra[4], extra[5], dwrq->length);
> 
> 




More information about the libertas-dev mailing list