From 155e0180956cfe2ee7942743bebf537f41efec09 Mon Sep 17 00:00:00 2001 From: JasonHuang Date: Tue, 3 Sep 2024 04:37:18 -0500 Subject: [PATCH 293/296] brcmfmac: fix error msg while deleting virtual interface nl80211 will call ops->get_channel while get new/del/set interface command. However, unregistration vif ends later than calling ops->get_channel, so the error msg is coming up. Add protect condition to avoid the error msg. Signed-off-by: JasonHuang --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index 8d0d4ce7b37d..d7c9b30bcd3a 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -6765,6 +6765,7 @@ static int brcmf_cfg80211_get_channel(struct wiphy *wiphy, struct cfg80211_chan_def *chandef) { struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy); + struct brcmf_cfg80211_vif *vif = wdev_to_vif(wdev); struct net_device *ndev = wdev->netdev; struct brcmf_pub *drvr = cfg->pub; struct brcmu_chan ch; @@ -6775,7 +6776,8 @@ static int brcmf_cfg80211_get_channel(struct wiphy *wiphy, if (!ndev || drvr->bus_if->state != BRCMF_BUS_UP) return -ENODEV; - + if (!check_vif_up(vif)) + return -EIO; err = brcmf_fil_iovar_int_get(netdev_priv(ndev), "chanspec", &chanspec); if (err) { bphy_err(drvr, "chanspec failed (%d)\n", err); -- 2.25.1