From 1cdab9482535f66723e0f60368a71d88b6e1aa5d Mon Sep 17 00:00:00 2001 From: Carter Chen Date: Wed, 19 Apr 2023 02:53:12 -0500 Subject: [PATCH 157/296] brcmfmac: fix mac address is not assigned for iovar BRCMF_C_GET_RSSI found by adhoc mode, but C_GET_RSSI is used by sta mode as well. assign the peer mac whom want to query. Fixes: SWLINUX-3426 Signed-off-by: Carter Chen --- .../net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index fe426fb91bd9..035930b2c37f 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -3516,7 +3516,8 @@ static void brcmf_fill_bss_param(struct brcmf_if *ifp, struct station_info *si) static s32 brcmf_cfg80211_get_station_ibss(struct brcmf_if *ifp, - struct station_info *sinfo) + struct station_info *sinfo, + const u8 *mac) { struct brcmf_pub *drvr = ifp->drvr; struct brcmf_scb_val_le scbval; @@ -3535,6 +3536,7 @@ brcmf_cfg80211_get_station_ibss(struct brcmf_if *ifp, sinfo->txrate.legacy = rate * 5; memset(&scbval, 0, sizeof(scbval)); + memcpy(&scbval.ea[0], mac, ETH_ALEN); err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_RSSI, &scbval, sizeof(scbval)); if (err) { @@ -3586,7 +3588,7 @@ brcmf_cfg80211_get_station(struct wiphy *wiphy, struct net_device *ndev, return -EIO; if (brcmf_is_ibssmode(ifp->vif)) - return brcmf_cfg80211_get_station_ibss(ifp, sinfo); + return brcmf_cfg80211_get_station_ibss(ifp, sinfo, mac); memset(&sta_info_le, 0, sizeof(sta_info_le)); memcpy(&sta_info_le, mac, ETH_ALEN); @@ -3667,6 +3669,7 @@ brcmf_cfg80211_get_station(struct wiphy *wiphy, struct net_device *ndev, } else if (test_bit(BRCMF_VIF_STATUS_CONNECTED, &ifp->vif->sme_state)) { memset(&scb_val, 0, sizeof(scb_val)); + memcpy(&scb_val.ea[0], mac, ETH_ALEN); err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_RSSI, &scb_val, sizeof(scb_val)); if (err) { -- 2.25.1