Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e9980e6d authored by Johannes Berg's avatar Johannes Berg Committed by John W. Linville
Browse files

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: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 75ac9a28
Loading
Loading
Loading
Loading
+17 −11
Original line number Diff line number Diff line
@@ -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)
		case NL80211_IFTYPE_STATION:
			if (!sdata->u.mgd.associated)
				continue;

		if (sdata->vif.type == NL80211_IFTYPE_ADHOC) {
			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;
	}