aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2014-10-22 03:25:06 -0400
committerJohannes Berg <johannes.berg@intel.com>2014-10-22 04:41:49 -0400
commit723e73acd16d2ea08cdbd8b449b7bc69389b94d4 (patch)
tree22a4b30b1fdef69eab194d8c5227d96942c83eb8 /net/wireless
parent5c6761adc77c131ef1601016f9ebbad0a9ae6d1a (diff)
cfg80211: make WMM TSPEC support flag an nl80211 feature flag
During the review of the corresponding wpa_supplicant patches we noticed that the only way for it to detect that this functionality is supported currently is to check for the command support. This can be misleading though, as the command was also designed to, in the future, support pure 802.11 TSPECs. Expose the WMM-TSPEC feature flag to nl80211 so later we can also expose an 802.11-TSPEC feature flag (if needed) to differentiate the two cases. Note: this change isn't needed in 3.18 as there's no driver there yet that supports the functionality at all. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless')
-rw-r--r--net/wireless/nl80211.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index d05fe6d6481d..d98d4ea27819 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -1514,8 +1514,8 @@ static int nl80211_send_wiphy(struct cfg80211_registered_device *rdev,
1514 if (rdev->wiphy.flags & WIPHY_FLAG_HAS_CHANNEL_SWITCH) 1514 if (rdev->wiphy.flags & WIPHY_FLAG_HAS_CHANNEL_SWITCH)
1515 CMD(channel_switch, CHANNEL_SWITCH); 1515 CMD(channel_switch, CHANNEL_SWITCH);
1516 CMD(set_qos_map, SET_QOS_MAP); 1516 CMD(set_qos_map, SET_QOS_MAP);
1517 if (rdev->wiphy.flags & 1517 if (rdev->wiphy.features &
1518 WIPHY_FLAG_SUPPORTS_WMM_ADMISSION) 1518 NL80211_FEATURE_SUPPORTS_WMM_ADMISSION)
1519 CMD(add_tx_ts, ADD_TX_TS); 1519 CMD(add_tx_ts, ADD_TX_TS);
1520 } 1520 }
1521 /* add into the if now */ 1521 /* add into the if now */
@@ -9557,7 +9557,7 @@ static int nl80211_add_tx_ts(struct sk_buff *skb, struct genl_info *info)
9557 u16 admitted_time = 0; 9557 u16 admitted_time = 0;
9558 int err; 9558 int err;
9559 9559
9560 if (!(rdev->wiphy.flags & WIPHY_FLAG_SUPPORTS_WMM_ADMISSION)) 9560 if (!(rdev->wiphy.features & NL80211_FEATURE_SUPPORTS_WMM_ADMISSION))
9561 return -EOPNOTSUPP; 9561 return -EOPNOTSUPP;
9562 9562
9563 if (!info->attrs[NL80211_ATTR_TSID] || !info->attrs[NL80211_ATTR_MAC] || 9563 if (!info->attrs[NL80211_ATTR_TSID] || !info->attrs[NL80211_ATTR_MAC] ||
@@ -9573,12 +9573,10 @@ static int nl80211_add_tx_ts(struct sk_buff *skb, struct genl_info *info)
9573 return -EINVAL; 9573 return -EINVAL;
9574 9574
9575 /* WMM uses TIDs 0-7 even for TSPEC */ 9575 /* WMM uses TIDs 0-7 even for TSPEC */
9576 if (tsid < IEEE80211_FIRST_TSPEC_TSID) { 9576 if (tsid >= IEEE80211_FIRST_TSPEC_TSID) {
9577 if (!(rdev->wiphy.flags & WIPHY_FLAG_SUPPORTS_WMM_ADMISSION))
9578 return -EINVAL;
9579 } else {
9580 /* TODO: handle 802.11 TSPEC/admission control 9577 /* TODO: handle 802.11 TSPEC/admission control
9581 * need more attributes for that (e.g. BA session requirement) 9578 * need more attributes for that (e.g. BA session requirement);
9579 * change the WMM adminssion test above to allow both then
9582 */ 9580 */
9583 return -EINVAL; 9581 return -EINVAL;
9584 } 9582 }