[PATCH 2/3] staging: r8188eu: Fix case where ethtype was never obtained and always be checked against 0

Dan Carpenter dan.carpenter at oracle.com
Wed Apr 9 19:00:17 UTC 2014


On Wed, Apr 09, 2014 at 09:51:53PM +0300, Dan Carpenter wrote:
> > -	if (auth_alg == 2) {
> > +	if (auth_alg == dot11AuthAlgrthm_8021X) {
> > +		/* get ether_type */
> > +		ptr = ptr + pfhdr->attrib.hdrlen + LLC_HEADER_SIZE;
> > +		memcpy(&ether_type, ptr, 2);
> > +		ether_type = ntohs((unsigned short)ether_type);
> 
> This cast doesn't make sense.  u16 and unsigned short are the same
> thing.  Anyway, the "ether_type" should be declared as __be16 because
> it's network endian.
> 

OOps.  You mostly use ether_type as u16.  But the cast is still wrong it
should be:

		ether_type = ntohs((__be16)ether_type);

Or something.  You could use the be_tmp variable...  Doesn't this patch
introduce an unused variable warning?

regards,
dan carpenter



More information about the devel mailing list