cfg80211: wext does not need to set monitor channel in managed mode
authorJorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Mon, 9 Jan 2017 14:25:49 +0000 (15:25 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 11 Jan 2017 13:10:44 +0000 (14:10 +0100)
There is not a valid reason to attempt setting the monitor channel
while in managed mode. Since this code path only deals with this mode,
remove the code block.

Johannes: I'll note that the comment indicated it was for backward
compatibility, but the code wasn't functional since switching the
monitor channel isn't supported (any more?) when in managed mode, as
that mode owns the channel configuration. Additionally, since monitor
can't be done on a managed mode interface, this would only have had
any effect to start with if a separate monitor interface is present,
in which case it's better to change the channel through that anyway,
if even possible.

Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/wext-sme.c

index 995163830a61f582c11b9234b370bb2c3766f7f0..c434f193f39aa6a1215c2791e25a891faed6b573 100644 (file)
@@ -105,30 +105,7 @@ int cfg80211_mgd_wext_siwfreq(struct net_device *dev,
                        goto out;
        }
 
-
        wdev->wext.connect.channel = chan;
-
-       /*
-        * SSID is not set, we just want to switch monitor channel,
-        * this is really just backward compatibility, if the SSID
-        * is set then we use the channel to select the BSS to use
-        * to connect to instead. If we were connected on another
-        * channel we disconnected above and reconnect below.
-        */
-       if (chan && !wdev->wext.connect.ssid_len) {
-               struct cfg80211_chan_def chandef = {
-                       .width = NL80211_CHAN_WIDTH_20_NOHT,
-                       .center_freq1 = freq,
-               };
-
-               chandef.chan = ieee80211_get_channel(&rdev->wiphy, freq);
-               if (chandef.chan)
-                       err = cfg80211_set_monitor_channel(rdev, &chandef);
-               else
-                       err = -EINVAL;
-               goto out;
-       }
-
        err = cfg80211_mgd_wext_connect(rdev, wdev);
  out:
        wdev_unlock(wdev);