aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/mac80211/mlme.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index df12e746b03e..0abd5a4fe38d 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -2612,13 +2612,12 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,
2612 mesh_peer_accepts_plinks(elems)); 2612 mesh_peer_accepts_plinks(elems));
2613 } 2613 }
2614 2614
2615 rcu_read_lock();
2616
2617 if (sdata->vif.type == IEEE80211_IF_TYPE_IBSS && elems->supp_rates && 2615 if (sdata->vif.type == IEEE80211_IF_TYPE_IBSS && elems->supp_rates &&
2618 memcmp(mgmt->bssid, sdata->u.sta.bssid, ETH_ALEN) == 0) { 2616 memcmp(mgmt->bssid, sdata->u.sta.bssid, ETH_ALEN) == 0) {
2619
2620 supp_rates = ieee80211_sta_get_rates(local, elems, band); 2617 supp_rates = ieee80211_sta_get_rates(local, elems, band);
2621 2618
2619 rcu_read_lock();
2620
2622 sta = sta_info_get(local, mgmt->sa); 2621 sta = sta_info_get(local, mgmt->sa);
2623 if (sta) { 2622 if (sta) {
2624 u64 prev_rates; 2623 u64 prev_rates;
@@ -2642,9 +2641,9 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,
2642 ieee80211_ibss_add_sta(sdata, NULL, mgmt->bssid, 2641 ieee80211_ibss_add_sta(sdata, NULL, mgmt->bssid,
2643 mgmt->sa, supp_rates); 2642 mgmt->sa, supp_rates);
2644 } 2643 }
2645 }
2646 2644
2647 rcu_read_unlock(); 2645 rcu_read_unlock();
2646 }
2648 2647
2649 if (elems->ds_params && elems->ds_params_len == 1) 2648 if (elems->ds_params && elems->ds_params_len == 1)
2650 freq = ieee80211_channel_to_frequency(elems->ds_params[0]); 2649 freq = ieee80211_channel_to_frequency(elems->ds_params[0]);