]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
brcmfmac: not set mbss in vif if firmware does not support MBSS
authorWright Feng <wright.feng@cypress.com>
Wed, 11 Dec 2019 23:52:51 +0000 (00:52 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 18 Dec 2019 19:07:45 +0000 (21:07 +0200)
With RSDB mode, FMAC and firmware are able to create 2 or more AP,
so we should not set mbss in vif structure if firmware does not
support MBSS feature.

Signed-off-by: Wright Feng <wright.feng@cypress.com>
Signed-off-by: Soeren Moch <smoch@web.de>
Reviewed-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c

index 9d9dc9195e9e8ef7b1d6e46b10d3f897a86b99dc..6eb3064c37219bfca14eac7a1068d1305c93f330 100644 (file)
@@ -5363,6 +5363,7 @@ struct brcmf_cfg80211_vif *brcmf_alloc_vif(struct brcmf_cfg80211_info *cfg,
        struct brcmf_cfg80211_vif *vif_walk;
        struct brcmf_cfg80211_vif *vif;
        bool mbss;
+       struct brcmf_if *ifp = brcmf_get_ifp(cfg->pub, 0);
 
        brcmf_dbg(TRACE, "allocating virtual interface (size=%zu)\n",
                  sizeof(*vif));
@@ -5375,7 +5376,8 @@ struct brcmf_cfg80211_vif *brcmf_alloc_vif(struct brcmf_cfg80211_info *cfg,
 
        brcmf_init_prof(&vif->profile);
 
-       if (type == NL80211_IFTYPE_AP) {
+       if (type == NL80211_IFTYPE_AP &&
+           brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MBSS)) {
                mbss = false;
                list_for_each_entry(vif_walk, &cfg->vif_list, list) {
                        if (vif_walk->wdev.iftype == NL80211_IFTYPE_AP) {