cfg80211: fix reporting 5/10 MHz support to user space
nla_put_flag needs a real nl80211 attribute id, not a wiphy flag bit. While at it, split 5 and 10 MHz capability flags in case we ever need to support hardware that can only do one of the two. Also move the flag settings to the split-only information so we don't increase the space needed for old userspace. Signed-off-by: Felix Fietkau <nbd@openwrt.org> [change location of flag setting] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Родитель
f12140c04c
Коммит
01e0daa43f
|
@ -1515,6 +1515,11 @@ enum nl80211_commands {
|
|||
* to react to radar events, e.g. initiate a channel switch or leave the
|
||||
* IBSS network.
|
||||
*
|
||||
* @NL80211_ATTR_SUPPORT_5_MHZ: A flag indicating that the device supports
|
||||
* 5 MHz channel bandwidth.
|
||||
* @NL80211_ATTR_SUPPORT_10_MHZ: A flag indicating that the device supports
|
||||
* 10 MHz channel bandwidth.
|
||||
*
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
*/
|
||||
|
@ -1831,6 +1836,9 @@ enum nl80211_attrs {
|
|||
|
||||
NL80211_ATTR_HANDLE_DFS,
|
||||
|
||||
NL80211_ATTR_SUPPORT_5_MHZ,
|
||||
NL80211_ATTR_SUPPORT_10_MHZ,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
|
|
|
@ -1228,10 +1228,6 @@ static int nl80211_send_wiphy(struct cfg80211_registered_device *dev,
|
|||
if ((dev->wiphy.flags & WIPHY_FLAG_TDLS_EXTERNAL_SETUP) &&
|
||||
nla_put_flag(msg, NL80211_ATTR_TDLS_EXTERNAL_SETUP))
|
||||
goto nla_put_failure;
|
||||
if ((dev->wiphy.flags & WIPHY_FLAG_SUPPORTS_5_10_MHZ) &&
|
||||
nla_put_flag(msg, WIPHY_FLAG_SUPPORTS_5_10_MHZ))
|
||||
goto nla_put_failure;
|
||||
|
||||
state->split_start++;
|
||||
if (state->split)
|
||||
break;
|
||||
|
@ -1560,6 +1556,11 @@ static int nl80211_send_wiphy(struct cfg80211_registered_device *dev,
|
|||
if (nl80211_send_coalesce(msg, dev))
|
||||
goto nla_put_failure;
|
||||
|
||||
if ((dev->wiphy.flags & WIPHY_FLAG_SUPPORTS_5_10_MHZ) &&
|
||||
(nla_put_flag(msg, NL80211_ATTR_SUPPORT_5_MHZ) ||
|
||||
nla_put_flag(msg, NL80211_ATTR_SUPPORT_10_MHZ)))
|
||||
goto nla_put_failure;
|
||||
|
||||
/* done */
|
||||
state->split_start = 0;
|
||||
break;
|
||||
|
|
Загрузка…
Ссылка в новой задаче