Commit 00ec75fc authored by Luciano Coelho's avatar Luciano Coelho Committed by Johannes Berg

cfg80211: pass the actual iftype when calling cfg80211_chandef_dfs_required()

There is no need to pass NL80211_IFTYPE_UNSPECIFIED when calling
cfg80211_chandef_dfs_required() since we always already have the
interface type.  So, pass the actual interface type instead.

Additionally, have cfg80211_chandef_dfs_required() WARN if the passed
interface type is NL80211_IFTYPE_UNSPECIFIED, so we can detect
problems more easily.
Tested-by: default avatarJanusz Dziedzic <janusz.dziedzic@tieto.com>
Reported-by: default avatarEliad Peller <eliad@wizery.com>
Signed-off-by: default avatarLuciano Coelho <luciano.coelho@intel.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 67ae07a1
...@@ -340,7 +340,6 @@ int cfg80211_chandef_dfs_required(struct wiphy *wiphy, ...@@ -340,7 +340,6 @@ int cfg80211_chandef_dfs_required(struct wiphy *wiphy,
case NL80211_IFTYPE_AP: case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_P2P_GO: case NL80211_IFTYPE_P2P_GO:
case NL80211_IFTYPE_MESH_POINT: case NL80211_IFTYPE_MESH_POINT:
case NL80211_IFTYPE_UNSPECIFIED:
width = cfg80211_chandef_get_width(chandef); width = cfg80211_chandef_get_width(chandef);
if (width < 0) if (width < 0)
return -EINVAL; return -EINVAL;
...@@ -372,6 +371,7 @@ int cfg80211_chandef_dfs_required(struct wiphy *wiphy, ...@@ -372,6 +371,7 @@ int cfg80211_chandef_dfs_required(struct wiphy *wiphy,
case NL80211_IFTYPE_WDS: case NL80211_IFTYPE_WDS:
case NL80211_IFTYPE_P2P_DEVICE: case NL80211_IFTYPE_P2P_DEVICE:
break; break;
case NL80211_IFTYPE_UNSPECIFIED:
case NUM_NL80211_IFTYPES: case NUM_NL80211_IFTYPES:
WARN_ON(1); WARN_ON(1);
} }
...@@ -796,8 +796,7 @@ bool cfg80211_reg_can_beacon(struct wiphy *wiphy, ...@@ -796,8 +796,7 @@ bool cfg80211_reg_can_beacon(struct wiphy *wiphy,
!cfg80211_go_permissive_chan(rdev, chandef->chan)) !cfg80211_go_permissive_chan(rdev, chandef->chan))
prohibited_flags |= IEEE80211_CHAN_NO_IR; prohibited_flags |= IEEE80211_CHAN_NO_IR;
if (cfg80211_chandef_dfs_required(wiphy, chandef, if (cfg80211_chandef_dfs_required(wiphy, chandef, iftype) > 0 &&
NL80211_IFTYPE_UNSPECIFIED) > 0 &&
cfg80211_chandef_dfs_available(wiphy, chandef)) { cfg80211_chandef_dfs_available(wiphy, chandef)) {
/* We can skip IEEE80211_CHAN_NO_IR if chandef dfs available */ /* We can skip IEEE80211_CHAN_NO_IR if chandef dfs available */
prohibited_flags = IEEE80211_CHAN_DISABLED; prohibited_flags = IEEE80211_CHAN_DISABLED;
......
...@@ -5822,7 +5822,7 @@ static int nl80211_start_radar_detection(struct sk_buff *skb, ...@@ -5822,7 +5822,7 @@ static int nl80211_start_radar_detection(struct sk_buff *skb,
return -EBUSY; return -EBUSY;
err = cfg80211_chandef_dfs_required(wdev->wiphy, &chandef, err = cfg80211_chandef_dfs_required(wdev->wiphy, &chandef,
NL80211_IFTYPE_UNSPECIFIED); wdev->iftype);
if (err < 0) if (err < 0)
return err; return err;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment