aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-11-08 12:31:02 -0500
committerJohannes Berg <johannes.berg@intel.com>2012-11-26 06:42:58 -0500
commit42d97a599eb6b2aab3a401b3e5799a399d6c7652 (patch)
tree1905b71c2092ad299503515dd0d59fa74573cd12 /include
parent028e8da0723a6f6a00d9d1e3dae9ad448a28987e (diff)
cfg80211: remove remain-on-channel channel type
As mwifiex (and mac80211 in the software case) are the only drivers actually implementing remain-on-channel with channel type, userspace can't be relying on it. This is the case, as it's used only for P2P operations right now. Rather than adding a flag to tell userspace whether or not it can actually rely on it, simplify all the code by removing the ability to use different channel types. Leave only the validation of the attribute, so that if we extend it again later (with the needed capability flag), it can't break userspace sending invalid data. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include')
-rw-r--r--include/net/cfg80211.h11
-rw-r--r--include/net/mac80211.h1
-rw-r--r--include/uapi/linux/nl80211.h14
3 files changed, 8 insertions, 18 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index c2c185febb87..1effe0682d28 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1791,7 +1791,6 @@ struct cfg80211_ops {
1791 int (*remain_on_channel)(struct wiphy *wiphy, 1791 int (*remain_on_channel)(struct wiphy *wiphy,
1792 struct wireless_dev *wdev, 1792 struct wireless_dev *wdev,
1793 struct ieee80211_channel *chan, 1793 struct ieee80211_channel *chan,
1794 enum nl80211_channel_type channel_type,
1795 unsigned int duration, 1794 unsigned int duration,
1796 u64 *cookie); 1795 u64 *cookie);
1797 int (*cancel_remain_on_channel)(struct wiphy *wiphy, 1796 int (*cancel_remain_on_channel)(struct wiphy *wiphy,
@@ -1800,10 +1799,8 @@ struct cfg80211_ops {
1800 1799
1801 int (*mgmt_tx)(struct wiphy *wiphy, struct wireless_dev *wdev, 1800 int (*mgmt_tx)(struct wiphy *wiphy, struct wireless_dev *wdev,
1802 struct ieee80211_channel *chan, bool offchan, 1801 struct ieee80211_channel *chan, bool offchan,
1803 enum nl80211_channel_type channel_type, 1802 unsigned int wait, const u8 *buf, size_t len,
1804 bool channel_type_valid, unsigned int wait, 1803 bool no_cck, bool dont_wait_for_ack, u64 *cookie);
1805 const u8 *buf, size_t len, bool no_cck,
1806 bool dont_wait_for_ack, u64 *cookie);
1807 int (*mgmt_tx_cancel_wait)(struct wiphy *wiphy, 1804 int (*mgmt_tx_cancel_wait)(struct wiphy *wiphy,
1808 struct wireless_dev *wdev, 1805 struct wireless_dev *wdev,
1809 u64 cookie); 1806 u64 cookie);
@@ -3350,14 +3347,12 @@ void cfg80211_disconnected(struct net_device *dev, u16 reason,
3350 * @wdev: wireless device 3347 * @wdev: wireless device
3351 * @cookie: the request cookie 3348 * @cookie: the request cookie
3352 * @chan: The current channel (from remain_on_channel request) 3349 * @chan: The current channel (from remain_on_channel request)
3353 * @channel_type: Channel type
3354 * @duration: Duration in milliseconds that the driver intents to remain on the 3350 * @duration: Duration in milliseconds that the driver intents to remain on the
3355 * channel 3351 * channel
3356 * @gfp: allocation flags 3352 * @gfp: allocation flags
3357 */ 3353 */
3358void cfg80211_ready_on_channel(struct wireless_dev *wdev, u64 cookie, 3354void cfg80211_ready_on_channel(struct wireless_dev *wdev, u64 cookie,
3359 struct ieee80211_channel *chan, 3355 struct ieee80211_channel *chan,
3360 enum nl80211_channel_type channel_type,
3361 unsigned int duration, gfp_t gfp); 3356 unsigned int duration, gfp_t gfp);
3362 3357
3363/** 3358/**
@@ -3365,12 +3360,10 @@ void cfg80211_ready_on_channel(struct wireless_dev *wdev, u64 cookie,
3365 * @wdev: wireless device 3360 * @wdev: wireless device
3366 * @cookie: the request cookie 3361 * @cookie: the request cookie
3367 * @chan: The current channel (from remain_on_channel request) 3362 * @chan: The current channel (from remain_on_channel request)
3368 * @channel_type: Channel type
3369 * @gfp: allocation flags 3363 * @gfp: allocation flags
3370 */ 3364 */
3371void cfg80211_remain_on_channel_expired(struct wireless_dev *wdev, u64 cookie, 3365void cfg80211_remain_on_channel_expired(struct wireless_dev *wdev, u64 cookie,
3372 struct ieee80211_channel *chan, 3366 struct ieee80211_channel *chan,
3373 enum nl80211_channel_type channel_type,
3374 gfp_t gfp); 3367 gfp_t gfp);
3375 3368
3376 3369
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index e1293c7e4d2c..12093778b057 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2550,7 +2550,6 @@ struct ieee80211_ops {
2550 int (*remain_on_channel)(struct ieee80211_hw *hw, 2550 int (*remain_on_channel)(struct ieee80211_hw *hw,
2551 struct ieee80211_vif *vif, 2551 struct ieee80211_vif *vif,
2552 struct ieee80211_channel *chan, 2552 struct ieee80211_channel *chan,
2553 enum nl80211_channel_type channel_type,
2554 int duration); 2553 int duration);
2555 int (*cancel_remain_on_channel)(struct ieee80211_hw *hw); 2554 int (*cancel_remain_on_channel)(struct ieee80211_hw *hw);
2556 int (*set_ringparam)(struct ieee80211_hw *hw, u32 tx, u32 rx); 2555 int (*set_ringparam)(struct ieee80211_hw *hw, u32 tx, u32 rx);
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index 1a9a819cfab0..43cd6fa084c5 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -401,8 +401,7 @@
401 * a response while being associated to an AP on another channel. 401 * a response while being associated to an AP on another channel.
402 * %NL80211_ATTR_IFINDEX is used to specify which interface (and thus 402 * %NL80211_ATTR_IFINDEX is used to specify which interface (and thus
403 * radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the 403 * radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the
404 * frequency for the operation and %NL80211_ATTR_WIPHY_CHANNEL_TYPE may be 404 * frequency for the operation.
405 * optionally used to specify additional channel parameters.
406 * %NL80211_ATTR_DURATION is used to specify the duration in milliseconds 405 * %NL80211_ATTR_DURATION is used to specify the duration in milliseconds
407 * to remain on the channel. This command is also used as an event to 406 * to remain on the channel. This command is also used as an event to
408 * notify when the requested duration starts (it may take a while for the 407 * notify when the requested duration starts (it may take a while for the
@@ -440,12 +439,11 @@
440 * as an event indicating reception of a frame that was not processed in 439 * as an event indicating reception of a frame that was not processed in
441 * kernel code, but is for us (i.e., which may need to be processed in a 440 * kernel code, but is for us (i.e., which may need to be processed in a
442 * user space application). %NL80211_ATTR_FRAME is used to specify the 441 * user space application). %NL80211_ATTR_FRAME is used to specify the
443 * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ (and 442 * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ is used
444 * optionally %NL80211_ATTR_WIPHY_CHANNEL_TYPE) is used to indicate on 443 * to indicate on which channel the frame is to be transmitted or was
445 * which channel the frame is to be transmitted or was received. If this 444 * received. If this channel is not the current channel (remain-on-channel
446 * channel is not the current channel (remain-on-channel or the 445 * or the operational channel) the device will switch to the given channel
447 * operational channel) the device will switch to the given channel and 446 * and transmit the frame, optionally waiting for a response for the time
448 * transmit the frame, optionally waiting for a response for the time
449 * specified using %NL80211_ATTR_DURATION. When called, this operation 447 * specified using %NL80211_ATTR_DURATION. When called, this operation
450 * returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the 448 * returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the
451 * TX status event pertaining to the TX request. 449 * TX status event pertaining to the TX request.