summaryrefslogtreecommitdiffstats
path: root/net/wireless/chan.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/wireless/chan.c')
-rw-r--r--net/wireless/chan.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/net/wireless/chan.c b/net/wireless/chan.c
index 1cc4b7cc7372..d355f67d0cdd 100644
--- a/net/wireless/chan.c
+++ b/net/wireless/chan.c
@@ -82,7 +82,6 @@ int cfg80211_set_monitor_channel(struct cfg80211_registered_device *rdev,
int freq, enum nl80211_channel_type chantype)
{
struct ieee80211_channel *chan;
- int err;
if (!rdev->ops->set_monitor_channel)
return -EOPNOTSUPP;
@@ -93,13 +92,7 @@ int cfg80211_set_monitor_channel(struct cfg80211_registered_device *rdev,
if (!chan)
return -EINVAL;
- err = rdev->ops->set_monitor_channel(&rdev->wiphy, chan, chantype);
- if (!err) {
- rdev->monitor_channel = chan;
- rdev->monitor_channel_type = chantype;
- }
-
- return err;
+ return rdev->ops->set_monitor_channel(&rdev->wiphy, chan, chantype);
}
void
@@ -134,9 +127,16 @@ cfg80211_get_chan_state(struct wireless_dev *wdev,
break;
case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_P2P_GO:
+ if (wdev->beacon_interval) {
+ *chan = wdev->channel;
+ *chanmode = CHAN_MODE_SHARED;
+ }
+ return;
case NL80211_IFTYPE_MESH_POINT:
- *chan = wdev->channel;
- *chanmode = CHAN_MODE_SHARED;
+ if (wdev->mesh_id_len) {
+ *chan = wdev->channel;
+ *chanmode = CHAN_MODE_SHARED;
+ }
return;
case NL80211_IFTYPE_MONITOR:
case NL80211_IFTYPE_AP_VLAN: