brcmfmac: remove setting IBSS mode when stopping AP
authorChi-hsien Lin <Chi-Hsien.Lin@cypress.com>
Thu, 18 May 2017 09:22:19 +0000 (17:22 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Mon, 22 May 2017 15:21:10 +0000 (18:21 +0300)
Upon stopping an AP interface the driver disable INFRA mode effectively
setting the interface in IBSS mode. However, this may affect other
interfaces running in INFRA mode. For instance, if user creates and stops
hostap daemon on virtual interface, then association cannot work on
primary interface because default BSS has been set to IBSS mode in
firmware side. The IBSS mode should be set when cfg80211 changes the
interface.

Reviewed-by: Wright Feng <wright.feng@cypress.com>
Signed-off-by: Chi-hsien Lin <Chi-Hsien.Lin@cypress.com>
[kvalo@codeaurora.org: rephased commit log based on discussion]
Signed-off-by: Wright Feng <wright.feng@cypress.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c

index 2bf76bd765bdcc30a8c8cd646b2f7328009bf035..a2bf11fc8ecce3d9748334f9be7e47d7842e6006 100644 (file)
@@ -4674,9 +4674,6 @@ static int brcmf_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *ndev)
                err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_AP, 0);
                if (err < 0)
                        brcmf_err("setting AP mode failed %d\n", err);
-               err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_INFRA, 0);
-               if (err < 0)
-                       brcmf_err("setting INFRA mode failed %d\n", err);
                if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MBSS))
                        brcmf_fil_iovar_int_set(ifp, "mbss", 0);
                brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_REGULATORY,