Browse Source

cfg80211: remove channel_switch combination check

Driver is now responsible for veryfing if the
switch is possible.

Since this is inherently tricky driver may decide
to disconnect an interface later with
cfg80211_stop_iface().

This doesn't mean driver can accept everything. It
should do it's best to verify requests and reject
them as soon as possible.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Michal Kazior 11 years ago
parent
commit
97dc94f1d9
2 changed files with 6 additions and 12 deletions
  1. 6 1
      include/net/cfg80211.h
  2. 0 11
      net/wireless/nl80211.c

+ 6 - 1
include/net/cfg80211.h

@@ -2301,7 +2301,12 @@ struct cfg80211_qos_map {
  *	reliability. This operation can not fail.
  *	reliability. This operation can not fail.
  * @set_coalesce: Set coalesce parameters.
  * @set_coalesce: Set coalesce parameters.
  *
  *
- * @channel_switch: initiate channel-switch procedure (with CSA)
+ * @channel_switch: initiate channel-switch procedure (with CSA). Driver is
+ *	responsible for veryfing if the switch is possible. Since this is
+ *	inherently tricky driver may decide to disconnect an interface later
+ *	with cfg80211_stop_iface(). This doesn't mean driver can accept
+ *	everything. It should do it's best to verify requests and reject them
+ *	as soon as possible.
  *
  *
  * @set_qos_map: Set QoS mapping information to the driver
  * @set_qos_map: Set QoS mapping information to the driver
  *
  *

+ 0 - 11
net/wireless/nl80211.c

@@ -6013,17 +6013,6 @@ skip_beacons:
 		params.radar_required = true;
 		params.radar_required = true;
 	}
 	}
 
 
-	/* TODO: I left this here for now.  With channel switch, the
-	 * verification is a bit more complicated, because we only do
-	 * it later when the channel switch really happens.
-	 */
-	err = cfg80211_can_use_iftype_chan(rdev, wdev, wdev->iftype,
-					   params.chandef.chan,
-					   CHAN_MODE_SHARED,
-					   radar_detect_width);
-	if (err)
-		return err;
-
 	if (info->attrs[NL80211_ATTR_CH_SWITCH_BLOCK_TX])
 	if (info->attrs[NL80211_ATTR_CH_SWITCH_BLOCK_TX])
 		params.block_tx = true;
 		params.block_tx = true;