From: Rafał Miłecki <rafal@xxxxxxxxxx> It's important as brcmfmac creates one main interface for each PHY and doesn't allow deleting it. Not setting carrier could result in other subsystems misbehaving (e.g. LEDs "netdev" trigger turning LED on). Signed-off-by: Rafał Miłecki <rafal@xxxxxxxxxx> --- I noticed this problem when using "netdev" LED trigger with "wlan0" set as "device_name". While my interface was down (unused) the "netdev" trigger was checking it with netif_carrier_ok() and assuming it's up. This solution affects initial state of all brcmfmac interfaces (not only the first non-removable one) but I think it should be fine. Later on brcmfmac takes care of updating carrier as needed. --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c index 85cf96461dde..d3ddd97fe768 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c @@ -661,6 +661,8 @@ int brcmf_net_attach(struct brcmf_if *ifp, bool rtnl_locked) goto fail; } + netif_carrier_off(ndev); + ndev->priv_destructor = brcmf_cfg80211_free_netdev; brcmf_dbg(INFO, "%s: Broadcom Dongle Host Driver\n", ndev->name); return 0; -- 2.21.0