brcmfmac: add setting carrier state ON for successful roaming
authorChung-Hsien Hsu <stanley.hsu@cypress.com>
Mon, 7 Aug 2017 08:16:52 +0000 (16:16 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 8 Aug 2017 11:52:04 +0000 (14:52 +0300)
After association, ping is not working when sweeping the channel at the
AP side. It is caused by having incorrect carrier state (OFF) for the STA
in successful roaming. This patch sets the carrier state ON for the case.

Signed-off-by: Chung-Hsien Hsu <stanley.hsu@cypress.com>
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c

index 65cbb3d1e5090257473edb3c55f864fe7199de85..aaed4ab503ad16c6f4de0e3ccec5b83c3f85c6a1 100644 (file)
@@ -5698,10 +5698,13 @@ brcmf_notify_roaming_status(struct brcmf_if *ifp,
        u32 status = e->status;
 
        if (event == BRCMF_E_ROAM && status == BRCMF_E_STATUS_SUCCESS) {
-               if (test_bit(BRCMF_VIF_STATUS_CONNECTED, &ifp->vif->sme_state))
+               if (test_bit(BRCMF_VIF_STATUS_CONNECTED,
+                            &ifp->vif->sme_state)) {
                        brcmf_bss_roaming_done(cfg, ifp->ndev, e);
-               else
+               } else {
                        brcmf_bss_connect_done(cfg, ifp->ndev, e, true);
+                       brcmf_net_setcarrier(ifp, true);
+               }
        }
 
        return 0;