diff mbox series

[3/3] mac80211: mlme: use local SSID copy

Message ID 20220513154805.89b855fd46f3.Ibdacb74eb4f9b21bc473072605df05bfd8bb2d75@changeid
State New
Headers show
Series [1/3] mac80211: mlme: move in RSSI reporting code | expand

Commit Message

Johannes Berg May 13, 2022, 1:48 p.m. UTC
From: Johannes Berg <johannes.berg@intel.com>

There's no need to look it up from the ifmgd->associated
BSS configuration, we already maintain a local copy since
commit b0140fda626e ("mac80211: mlme: save ssid info to
ieee80211_bss_conf while assoc"), though now it's in the
vif->cfg instead of bss_conf.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 net/mac80211/mlme.c | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

Comments

kernel test robot May 13, 2022, 7:28 p.m. UTC | #1
Hi Johannes,

I love your patch! Yet something to improve:

[auto build test ERROR on wireless-next/main]
[also build test ERROR on wireless/main v5.18-rc6 next-20220513]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Johannes-Berg/mac80211-mlme-move-in-RSSI-reporting-code/20220513-215204
base:   https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git main
config: hexagon-randconfig-r041-20220512 (https://download.01.org/0day-ci/archive/20220514/202205140341.A1zkqlx2-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 38189438b69ca27b4c6ce707c52dbd217583d046)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/64db83d0f7472324be9dce953061d4219b420e1c
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Johannes-Berg/mac80211-mlme-move-in-RSSI-reporting-code/20220513-215204
        git checkout 64db83d0f7472324be9dce953061d4219b420e1c
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash net/mac80211/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> net/mac80211/mlme.c:2645:23: error: no member named 'cfg' in 'struct ieee80211_vif'
                                                 sdata->vif.cfg.ssid,
                                                 ~~~~~~~~~~ ^
   net/mac80211/mlme.c:2646:23: error: no member named 'cfg' in 'struct ieee80211_vif'
                                                 sdata->vif.cfg.ssid_len,
                                                 ~~~~~~~~~~ ^
   2 errors generated.


vim +2645 net/mac80211/mlme.c

  2607	
  2608	static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata)
  2609	{
  2610		struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
  2611		u8 *dst = ifmgd->bssid;
  2612		u8 unicast_limit = max(1, max_probe_tries - 3);
  2613		struct sta_info *sta;
  2614	
  2615		/*
  2616		 * Try sending broadcast probe requests for the last three
  2617		 * probe requests after the first ones failed since some
  2618		 * buggy APs only support broadcast probe requests.
  2619		 */
  2620		if (ifmgd->probe_send_count >= unicast_limit)
  2621			dst = NULL;
  2622	
  2623		/*
  2624		 * When the hardware reports an accurate Tx ACK status, it's
  2625		 * better to send a nullfunc frame instead of a probe request,
  2626		 * as it will kick us off the AP quickly if we aren't associated
  2627		 * anymore. The timeout will be reset if the frame is ACKed by
  2628		 * the AP.
  2629		 */
  2630		ifmgd->probe_send_count++;
  2631	
  2632		if (dst) {
  2633			mutex_lock(&sdata->local->sta_mtx);
  2634			sta = sta_info_get(sdata, dst);
  2635			if (!WARN_ON(!sta))
  2636				ieee80211_check_fast_rx(sta);
  2637			mutex_unlock(&sdata->local->sta_mtx);
  2638		}
  2639	
  2640		if (ieee80211_hw_check(&sdata->local->hw, REPORTS_TX_ACK_STATUS)) {
  2641			ifmgd->nullfunc_failed = false;
  2642			ieee80211_send_nullfunc(sdata->local, sdata, false);
  2643		} else {
  2644			ieee80211_mlme_send_probe_req(sdata, sdata->vif.addr, dst,
> 2645						      sdata->vif.cfg.ssid,
  2646						      sdata->vif.cfg.ssid_len,
  2647						      ifmgd->associated->channel);
  2648		}
  2649	
  2650		ifmgd->probe_timeout = jiffies + msecs_to_jiffies(probe_wait_ms);
  2651		run_again(sdata, ifmgd->probe_timeout);
  2652	}
  2653
diff mbox series

Patch

diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 1bf6efe86c02..26b4863ae1ea 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -2608,7 +2608,6 @@  static void ieee80211_mlme_send_probe_req(struct ieee80211_sub_if_data *sdata,
 static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata)
 {
 	struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
-	const struct element *ssid;
 	u8 *dst = ifmgd->bssid;
 	u8 unicast_limit = max(1, max_probe_tries - 3);
 	struct sta_info *sta;
@@ -2642,19 +2641,10 @@  static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata)
 		ifmgd->nullfunc_failed = false;
 		ieee80211_send_nullfunc(sdata->local, sdata, false);
 	} else {
-		int ssid_len;
-
-		rcu_read_lock();
-		ssid = ieee80211_bss_get_elem(ifmgd->associated, WLAN_EID_SSID);
-		if (WARN_ON_ONCE(ssid == NULL))
-			ssid_len = 0;
-		else
-			ssid_len = ssid->datalen;
-
 		ieee80211_mlme_send_probe_req(sdata, sdata->vif.addr, dst,
-					      ssid->data, ssid_len,
+					      sdata->vif.cfg.ssid,
+					      sdata->vif.cfg.ssid_len,
 					      ifmgd->associated->channel);
-		rcu_read_unlock();
 	}
 
 	ifmgd->probe_timeout = jiffies + msecs_to_jiffies(probe_wait_ms);