Subject: Re: [PATCH] bcm43xx: enable shared key authentication

From: Michael Buesch <[email-masked]>
Date: Mon, 26 Jun 2006 21:06:40 +0200

On Monday 26 June 2006 20:38, John W. Linville wrote:
> On Fri, Jun 16, 2006 at 08:50:22PM +0100, Daniel Drake wrote:
> > I recently patched softmac to enable shared key authentication. This small patch
> > will enable crazy or unfortunate bcm43xx users to use this new capability.
> > 
> > Signed-off-by: Daniel Drake <[email-masked]>
> > 
> > Index: linux/drivers/net/wireless/bcm43xx/bcm43xx_main.c
> > ===================================================================
> > --- linux.orig/drivers/net/wireless/bcm43xx/bcm43xx_main.c
> > +++ linux/drivers/net/wireless/bcm43xx/bcm43xx_main.c
> > @@ -3599,6 +3599,10 @@ static void bcm43xx_ieee80211_set_securi
> >  		secinfo->encrypt = sec->encrypt;
> >  		dprintk(KERN_INFO PFX "   .encrypt = %d\n", sec->encrypt);
> >  	}
> > +	if (sec->flags & SEC_AUTH_MODE) {
> > +		secinfo->auth_mode = sec->auth_mode;
> > +		dprintk(KERN_INFO PFX "   .auth_mode = %d\n", sec->auth_mode);
> > +	}
> >  	if (bcm->initialized && !bcm->ieee->host_encrypt) {
> >  		if (secinfo->enabled) {
> >  			/* upload WEP keys to hardware */
> 
> I had problems applying this one.  I recall having a similar problem w/
> a patch in the last round of merging as well.
> 
> The version of bcm43xx_main.c in wireless-2.6 looks like this
> (post patch):
> 
> 
> 		secinfo->encrypt = sec->encrypt;
> 		dprintk(", .encrypt = %d", sec->encrypt);
> 	}
> 	if (sec->flags & SEC_AUTH_MODE) {
> 		secinfo->auth_mode = sec->auth_mode;
> 		dprintk(", .auth_mode = %d\n", sec->auth_mode);
> 	}
> 	dprintk("\n");
> 	if (bcm43xx_status(bcm) == BCM43xx_STAT_INITIALIZED &&
> 	    !bcm->ieee->host_encrypt) {
> 
> Am I missing a patch?
> 
> Please make sure I get any patches that are missing from wireless-2.6
> -- it is obviously better if we are all on the same page! :-)

Daniel's patch is diffed to an older tree.
wireless-2.6 recently removed bcm->initialized and friends
and added a more usable and more correct bcm43xx_status() flag.

So, basically the following just has to be added after
the other if(sec->flags & FOO), but before the if(bcm43xx_status...)

if (sec->flags & SEC_AUTH_MODE) {
	secinfo->auth_mode = sec->auth_mode;
	dprintk(KERN_INFO PFX "   .auth_mode = %d\n", sec->auth_mode);
}

-- 
Greetings Michael.