Re: [PATCH 7/8] brcmfmac: not set mbss in vif if firmware does not support MBSS

From: Chi-Hsien Lin
Date: Mon Dec 09 2019 - 22:38:54 EST




On 12/10/2019 6:38, Soeren Moch wrote:
> From: Wright Feng <wright.feng@xxxxxxxxxxx>
>
> 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@xxxxxxxxxxx>
Reviewed-by: Chi-Hsien Lin <chi-hsien.lin@xxxxxxxxxxx>

> ---
> Cc: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
> Cc: Arend van Spriel <arend.vanspriel@xxxxxxxxxxxx>
> Cc: Franky Lin <franky.lin@xxxxxxxxxxxx>
> Cc: Hante Meuleman <hante.meuleman@xxxxxxxxxxxx>
> Cc: Chi-Hsien Lin <chi-hsien.lin@xxxxxxxxxxx>
> Cc: Wright Feng <wright.feng@xxxxxxxxxxx>
> Cc: linux-wireless@xxxxxxxxxxxxxxx
> Cc: brcm80211-dev-list.pdl@xxxxxxxxxxxx
> Cc: brcm80211-dev-list@xxxxxxxxxxx
> Cc: netdev@xxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> ---
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> index 9d9dc9195e9e..6eb3064c3721 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> @@ -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) {
> --
> 2.17.1
>
> .
>