cfg80211: add channel flag to prohibit OFDM operation
Currently the only way for wireless drivers to tell whether or not OFDM is allowed on the current channel is to check the regulatory information. However, this requires hodling cfg80211_mutex, which is not visible to the drivers. Other regulatory restrictions are provided as flags in the channel definition, so let's do similarly with OFDM. This patch adds a new flag, IEEE80211_CHAN_NO_OFDM, to tell drivers that OFDM on a channel is not allowed. This flag is set on any channels for which regulatory indicates that OFDM is prohibited. Signed-off-by: Seth Forshee <seth.forshee@canonical.com> Tested-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
dd4c9260e7
commit
03f6b0843a
|
@ -96,6 +96,7 @@ enum ieee80211_band {
|
|||
* is not permitted.
|
||||
* @IEEE80211_CHAN_NO_HT40MINUS: extension channel below this channel
|
||||
* is not permitted.
|
||||
* @IEEE80211_CHAN_NO_OFDM: OFDM is not allowed on this channel.
|
||||
*/
|
||||
enum ieee80211_channel_flags {
|
||||
IEEE80211_CHAN_DISABLED = 1<<0,
|
||||
|
@ -104,6 +105,7 @@ enum ieee80211_channel_flags {
|
|||
IEEE80211_CHAN_RADAR = 1<<3,
|
||||
IEEE80211_CHAN_NO_HT40PLUS = 1<<4,
|
||||
IEEE80211_CHAN_NO_HT40MINUS = 1<<5,
|
||||
IEEE80211_CHAN_NO_OFDM = 1<<6,
|
||||
};
|
||||
|
||||
#define IEEE80211_CHAN_NO_HT40 \
|
||||
|
|
|
@ -680,6 +680,8 @@ static u32 map_regdom_flags(u32 rd_flags)
|
|||
channel_flags |= IEEE80211_CHAN_NO_IBSS;
|
||||
if (rd_flags & NL80211_RRF_DFS)
|
||||
channel_flags |= IEEE80211_CHAN_RADAR;
|
||||
if (rd_flags & NL80211_RRF_NO_OFDM)
|
||||
channel_flags |= IEEE80211_CHAN_NO_OFDM;
|
||||
return channel_flags;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue