From 661d0bf25ff180d31292ebc8a5ad2a5fd05ab300 Mon Sep 17 00:00:00 2001 From: Wright Feng Date: Mon, 20 Jul 2020 02:44:36 -0500 Subject: [PATCH 044/296] brcmfmac: update address mode via test tool for AP mode When setting interface type to AP mode via IOCTL test tool, we should update proto address mode as well. Without it, the firmware creates flowing type to STA and get incorrect flowing ID. In softAP mode, it causes device cannot ping to other STAs which are in power saving mode. Fixes: 65b06108e57a ("brcmfmac: set net carrier on via test tool for AP mode") Signed-off-by: Wright Feng Signed-off-by: Chi-hsien Lin --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 2 +- drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h | 2 +- drivers/net/wireless/broadcom/brcm80211/brcmfmac/vendor.c | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index 7ba57eafc439..441e7e88f97f 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -566,7 +566,7 @@ send_key_to_dongle(struct brcmf_if *ifp, struct brcmf_wsec_key *key) return err; } -static void +void brcmf_cfg80211_update_proto_addr_mode(struct wireless_dev *wdev) { struct brcmf_cfg80211_vif *vif; diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h index 6d2c49b968ee..6a5838012ce0 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h @@ -487,5 +487,5 @@ void brcmf_set_mpc(struct brcmf_if *ndev, int mpc); void brcmf_abort_scanning(struct brcmf_cfg80211_info *cfg); void brcmf_cfg80211_free_netdev(struct net_device *ndev); bool brcmf_is_apmode_operating(struct wiphy *wiphy); - +void brcmf_cfg80211_update_proto_addr_mode(struct wireless_dev *wdev); #endif /* BRCMFMAC_CFG80211_H */ diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/vendor.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/vendor.c index 0bad78d5f5c9..bf425d2c27bf 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/vendor.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/vendor.c @@ -71,6 +71,7 @@ static int brcmf_cfg80211_vndr_cmds_dcmd_handler(struct wiphy *wiphy, } else { ifp->vif->wdev.iftype = NL80211_IFTYPE_STATION; } + brcmf_cfg80211_update_proto_addr_mode(&vif->wdev); } if (cmdhdr->set) -- 2.25.1