diff options
author | Jouni Malinen <jouni@qca.qualcomm.com> | 2013-02-14 14:10:54 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-02-15 03:41:43 -0500 |
commit | df881293c6ba9a12868491a717b25cb14ec1fa4a (patch) | |
tree | 37ac4ed0321ce4cf626108fff6afbf92beaf845d /net/mac80211/cfg.c | |
parent | 9d62a98617298c1da288f50e84c5dd67732e79b7 (diff) |
cfg80211: Pass TDLS peer's QoS/HT/VHT information during set_station
The information of the peer's capabilities is required for the driver
to perform TDLS Peer UAPSD operations. This information of the peer is
passed by the supplicant using NL80211_CMD_SET_STATION command. This
commit enhances the function nl80211_set_station to pass this
information of the peer to the driver in case this command is used
with the TDLS peer STA.
In addition, make the HT/VHT capability configuration handled more
consistently for other STA cases (reject both instead of just HT).
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/cfg.c')
-rw-r--r-- | net/mac80211/cfg.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 0800fb331ce5..179dcbd8be1c 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c | |||
@@ -1412,9 +1412,11 @@ static int ieee80211_change_station(struct wiphy *wiphy, | |||
1412 | return -ENOENT; | 1412 | return -ENOENT; |
1413 | } | 1413 | } |
1414 | 1414 | ||
1415 | /* in station mode, supported rates are only valid with TDLS */ | 1415 | /* in station mode, some updates are only valid with TDLS */ |
1416 | if (sdata->vif.type == NL80211_IFTYPE_STATION && | 1416 | if (sdata->vif.type == NL80211_IFTYPE_STATION && |
1417 | params->supported_rates && | 1417 | (params->supported_rates || params->ht_capa || params->vht_capa || |
1418 | params->sta_modify_mask || | ||
1419 | (params->sta_flags_mask & BIT(NL80211_STA_FLAG_WME))) && | ||
1418 | !test_sta_flag(sta, WLAN_STA_TDLS_PEER)) { | 1420 | !test_sta_flag(sta, WLAN_STA_TDLS_PEER)) { |
1419 | mutex_unlock(&local->sta_mtx); | 1421 | mutex_unlock(&local->sta_mtx); |
1420 | return -EINVAL; | 1422 | return -EINVAL; |