mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 00:04:15 +08:00
mac80211: refactor __ieee80211_get_channel_mode
Use a switch statement instead of a list of if statements. Also include AP_VLAN in the list and skip them since the AP interface will also be looked at. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
75ac9a28a0
commit
e9980e6d20
@ -20,23 +20,29 @@ __ieee80211_get_channel_mode(struct ieee80211_local *local,
|
||||
if (!ieee80211_sdata_running(sdata))
|
||||
continue;
|
||||
|
||||
if (sdata->vif.type == NL80211_IFTYPE_MONITOR)
|
||||
switch (sdata->vif.type) {
|
||||
case NL80211_IFTYPE_MONITOR:
|
||||
continue;
|
||||
|
||||
if (sdata->vif.type == NL80211_IFTYPE_STATION &&
|
||||
!sdata->u.mgd.associated)
|
||||
continue;
|
||||
|
||||
if (sdata->vif.type == NL80211_IFTYPE_ADHOC) {
|
||||
case NL80211_IFTYPE_STATION:
|
||||
if (!sdata->u.mgd.associated)
|
||||
continue;
|
||||
break;
|
||||
case NL80211_IFTYPE_ADHOC:
|
||||
if (!sdata->u.ibss.ssid_len)
|
||||
continue;
|
||||
if (!sdata->u.ibss.fixed_channel)
|
||||
return CHAN_MODE_HOPPING;
|
||||
}
|
||||
|
||||
if (sdata->vif.type == NL80211_IFTYPE_AP &&
|
||||
!sdata->u.ap.beacon)
|
||||
break;
|
||||
case NL80211_IFTYPE_AP_VLAN:
|
||||
/* will also have _AP interface */
|
||||
continue;
|
||||
case NL80211_IFTYPE_AP:
|
||||
if (!sdata->u.ap.beacon)
|
||||
continue;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return CHAN_MODE_FIXED;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user