diff options
| author | Arend van Spriel <arend@broadcom.com> | 2017-01-18 11:56:35 +0530 |
|---|---|---|
| committer | Ashwini Patil <apati@codeaurora.org> | 2017-01-27 11:45:44 +0530 |
| commit | 3fee1ede34a6c3b2dd7d816643e887c2308f6a78 (patch) | |
| tree | 8d364b389b860cd5200fcda15de667274c4656b0 /net/wireless/core.c | |
| parent | 698345bd02127a93c62c5b6fb8c7653715a65d3a (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.c | 7 |
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); |
