summaryrefslogtreecommitdiff
path: root/net/wireless/core.c
diff options
context:
space:
mode:
authorArend van Spriel <arend@broadcom.com>2017-01-18 11:56:35 +0530
committerAshwini Patil <apati@codeaurora.org>2017-01-27 11:45:44 +0530
commit3fee1ede34a6c3b2dd7d816643e887c2308f6a78 (patch)
tree8d364b389b860cd5200fcda15de667274c4656b0 /net/wireless/core.c
parent698345bd02127a93c62c5b6fb8c7653715a65d3a (diff)
nl80211: add feature for BSS selection support
Introducing a new feature that the driver can use to indicate the driver/firmware supports configuration of BSS selection criteria upon CONNECT command. This can be useful when multiple BSS-es are found belonging to the same ESS, ie. Infra-BSS with same SSID. The criteria can then be used to offload selection of a preferred BSS. Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Lei Zhang <leizh@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> [move wiphy support check into parse_bss_select()] Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Ashwini Patil<apati@codeaurora.org> Git-commit: 38de03d2a28925b489c11546804e2f5418cc17a4 Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git CRs-Fixed: 1112378 Change-Id: I8fe69aab5215fe848c8deab123ecb1561a3b2402
Diffstat (limited to 'net/wireless/core.c')
-rw-r--r--net/wireless/core.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/wireless/core.c b/net/wireless/core.c
index 16043faba52c..14868e42f3ca 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -619,6 +619,13 @@ int wiphy_register(struct wiphy *wiphy)
!rdev->ops->set_mac_acl)))
return -EINVAL;
+ /* assure only valid behaviours are flagged by driver
+ * hence subtract 2 as bit 0 is invalid.
+ */
+ if (WARN_ON(wiphy->bss_select_support &&
+ (wiphy->bss_select_support & ~(BIT(__NL80211_BSS_SELECT_ATTR_AFTER_LAST) - 2))))
+ return -EINVAL;
+
if (wiphy->addresses)
memcpy(wiphy->perm_addr, wiphy->addresses[0].addr, ETH_ALEN);