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

Commit e5d2f954 authored by Luciano Coelho's avatar Luciano Coelho Committed by Johannes Berg
Browse files

nl80211: make sure we check for DFS with mesh channel switch



Since mesh support for DFS channels was added, we also need to check
for DFS channels when performing a channel switch with
NL80211_IFTYPE_MESHPOINT.

Signed-off-by: default avatarLuciano Coelho <luciano.coelho@intel.com>
[use switch statement, slight code cleanup]
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 30f55dc1
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -5913,17 +5913,22 @@ skip_beacons:
	if (!cfg80211_reg_can_beacon(&rdev->wiphy, &params.chandef))
		return -EINVAL;

	if (dev->ieee80211_ptr->iftype == NL80211_IFTYPE_AP ||
	    dev->ieee80211_ptr->iftype == NL80211_IFTYPE_P2P_GO ||
	    dev->ieee80211_ptr->iftype == NL80211_IFTYPE_ADHOC) {
	switch (dev->ieee80211_ptr->iftype) {
	case NL80211_IFTYPE_AP:
	case NL80211_IFTYPE_P2P_GO:
	case NL80211_IFTYPE_ADHOC:
	case NL80211_IFTYPE_MESH_POINT:
		err = cfg80211_chandef_dfs_required(wdev->wiphy,
						    &params.chandef);
		if (err < 0) {
		if (err < 0)
			return err;
		} else if (err) {
		if (err) {
			radar_detect_width = BIT(params.chandef.width);
			params.radar_required = true;
		}
		break;
	default:
		break;
	}

	err = cfg80211_can_use_iftype_chan(rdev, wdev, wdev->iftype,