Search Linux Wireless

Re: [PATCH] cfg80211: Extend channel to frequency mapping for 802.11j

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat January 8 2011 22:08:41 Brian Prodoehl wrote:
> I guess I saw what I wanted to see when I took a second look at the
> re-posted patch.  Here are compile-fixes to all the affected drivers.
> The following drivers are affected: mwl8k, iwlwifi, iwmc3200wifi,
> libertas, rt2x00, wl1251 and wl12xx.  So I guess these driver fixes
> need to be split into seven patches.  I don't use any of these
> drivers, so I can't really vouch for if I'm pulling the band the
> correct way for each.  I'm happy to split and submit, but I wouldn't
> mind another set of eyes on these changes.

Thanks! I would say these changes have to be merged with my patch, so it can 
be applied without breaking git bisect for the affected drivers.

> compat-wireless-2011-01-07.orig/drivers/net/wireless/libertas/cfg.c	2011-0
> 1-07 15:03:59.000000000 -0500
> +++
> compat-wireless-2011-01-07/drivers/net/wireless/libertas/cfg.c	2011-01-08
> 07:51:23.947290769 -0500
> @@ -607,7 +607,8 @@
>  		/* No channel, no luck */
>  		if (chan_no != -1) {
>  			struct wiphy *wiphy = priv->wdev->wiphy;
> -			int freq = ieee80211_channel_to_frequency(chan_no);
> +			int freq = ieee80211_channel_to_frequency(chan_no,
> +					chan_no <= 14 ? IEEE80211_BAND_2GHZ : 
IEEE80211_BAND_5GHZ);

The whole point of having the band argument is to avoid this. We now have 
overlapping channel numbers: channel 8 and 12 are defined in 5GHz as well as 
in 2.4GHz (that is for 20MHz channel width, there are more for 10 and 5MHz 
width, but we don't support that yet). The band has to come from the hardware 
or driver configuration.

> @@ -1597,7 +1598,8 @@
>  	lbs_deb_enter(LBS_DEB_CFG80211);
> 
>  	survey->channel = ieee80211_get_channel(wiphy,
> -		ieee80211_channel_to_frequency(priv->channel));
> +		ieee80211_channel_to_frequency(priv->channel,
> +			priv->channel <= 14 ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ));

Same here.

> compat-wireless-2011-01-07.orig/drivers/net/wireless/rt2x00/rt2x00dev.c	20
> 11-01-07 15:03:59.000000000 -0500
> +++
> compat-wireless-2011-01-07/drivers/net/wireless/rt2x00/rt2x00dev.c	
2011-01
> -08 07:51:23.971290769 -0500
> @@ -649,7 +649,8 @@
>  			      const int channel, const int tx_power,
>  			      const int value)
>  {
> -	entry->center_freq = ieee80211_channel_to_frequency(channel);
> +	entry->center_freq = ieee80211_channel_to_frequency(channel,
> +			channel <= 14 ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);

And here.

So the two problematic drivers are libertas and rt2x00. I'm Cc'ing the 
maintainers, and hope that they have better insight into how to fix this than 
we. 

bruno
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux