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 65cbb3d..aaed4ab 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;