diff options
| -rw-r--r-- | drivers/net/wireless/airo.c | 19 | 
1 files changed, 9 insertions, 10 deletions
| diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c index 65057348838..a4c7ae94614 100644 --- a/drivers/net/wireless/airo.c +++ b/drivers/net/wireless/airo.c @@ -5668,13 +5668,13 @@ static int airo_set_freq(struct net_device *dev,  		int channel = fwrq->m;  		/* We should do a better check than that,  		 * based on the card capability !!! */ -		if((channel < 1) || (channel > 16)) { +		if((channel < 1) || (channel > 14)) {  			printk(KERN_DEBUG "%s: New channel value of %d is invalid!\n", dev->name, fwrq->m);  			rc = -EINVAL;  		} else {  			readConfigRid(local, 1);  			/* Yes ! We can set it !!! */ -			local->config.channelSet = (u16)(channel - 1); +			local->config.channelSet = (u16) channel;  			set_bit (FLAG_COMMIT, &local->flags);  		}  	} @@ -5692,6 +5692,7 @@ static int airo_get_freq(struct net_device *dev,  {  	struct airo_info *local = dev->priv;  	StatusRid status_rid;		/* Card status info */ +	int ch;  	readConfigRid(local, 1);  	if ((local->config.opmode & 0xFF) == MODE_STA_ESS) @@ -5699,16 +5700,14 @@ static int airo_get_freq(struct net_device *dev,  	else  		readStatusRid(local, &status_rid, 1); -#ifdef WEXT_USECHANNELS -	fwrq->m = ((int)status_rid.channel) + 1; -	fwrq->e = 0; -#else -	{ -		int f = (int)status_rid.channel; -		fwrq->m = frequency_list[f] * 100000; +	ch = (int)status_rid.channel; +	if((ch > 0) && (ch < 15)) { +		fwrq->m = frequency_list[ch - 1] * 100000;  		fwrq->e = 1; +	} else { +		fwrq->m = ch; +		fwrq->e = 0;  	} -#endif  	return 0;  } | 
