From fa62ff729a94c8527db2cbf21e51b21a3106ab75 Mon Sep 17 00:00:00 2001 From: Wright Feng Date: Mon, 20 Jul 2020 02:44:36 -0500 Subject: [PATCH 056/179] 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 c09eb774a2bb..e49dd3506c05 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -492,7 +492,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 2fe90639e65b..86a7d8ac912e 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.17.1