brcmfmac: Do not handle link downs for ibss.
Sometimes on module reload and reconnect to ibss a deauth from other station can be received. This is treated as a link down but for ibss this is wrong. It will close the interface and no data is possible. Ignore the firmware generated link down events in ibss mode, as ibss is always teared down by cfg80211. Reviewed-by: Arend Van Spriel <arend@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Signed-off-by: Hante Meuleman <meuleman@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
这个提交包含在:
@@ -1454,6 +1454,7 @@ brcmf_cfg80211_leave_ibss(struct wiphy *wiphy, struct net_device *ndev)
|
||||
}
|
||||
|
||||
brcmf_link_down(ifp->vif, WLAN_REASON_DEAUTH_LEAVING);
|
||||
brcmf_net_setcarrier(ifp, false);
|
||||
|
||||
brcmf_dbg(TRACE, "Exit\n");
|
||||
|
||||
@@ -5248,12 +5249,13 @@ brcmf_notify_connect_status(struct brcmf_if *ifp,
|
||||
brcmf_dbg(CONN, "Linkdown\n");
|
||||
if (!brcmf_is_ibssmode(ifp->vif)) {
|
||||
brcmf_bss_connect_done(cfg, ndev, e, false);
|
||||
brcmf_link_down(ifp->vif,
|
||||
brcmf_map_fw_linkdown_reason(e));
|
||||
brcmf_init_prof(ndev_to_prof(ndev));
|
||||
if (ndev != cfg_to_ndev(cfg))
|
||||
complete(&cfg->vif_disabled);
|
||||
brcmf_net_setcarrier(ifp, false);
|
||||
}
|
||||
brcmf_link_down(ifp->vif, brcmf_map_fw_linkdown_reason(e));
|
||||
brcmf_init_prof(ndev_to_prof(ndev));
|
||||
if (ndev != cfg_to_ndev(cfg))
|
||||
complete(&cfg->vif_disabled);
|
||||
brcmf_net_setcarrier(ifp, false);
|
||||
} else if (brcmf_is_nonetwork(cfg, e)) {
|
||||
if (brcmf_is_ibssmode(ifp->vif))
|
||||
clear_bit(BRCMF_VIF_STATUS_CONNECTING,
|
||||
|
在新工单中引用
屏蔽一个用户