Lines Matching refs:pub
125 ies = (void *)rcu_access_pointer(bss->pub.beacon_ies); in bss_free()
126 if (ies && !bss->pub.hidden_beacon_bss) in bss_free()
128 ies = (void *)rcu_access_pointer(bss->pub.proberesp_ies); in bss_free()
149 if (bss->pub.hidden_beacon_bss) in bss_ref_get()
150 bss_from_pub(bss->pub.hidden_beacon_bss)->refcount++; in bss_ref_get()
152 if (bss->pub.transmitted_bss) in bss_ref_get()
153 bss_from_pub(bss->pub.transmitted_bss)->refcount++; in bss_ref_get()
161 if (bss->pub.hidden_beacon_bss) { in bss_ref_put()
164 hbss = bss_from_pub(bss->pub.hidden_beacon_bss); in bss_ref_put()
170 if (bss->pub.transmitted_bss) { in bss_ref_put()
173 tbss = bss_from_pub(bss->pub.transmitted_bss); in bss_ref_put()
194 if (!bss->pub.hidden_beacon_bss) in __cfg80211_unlink_bss()
204 list_del_init(&bss->pub.nontrans_list); in __cfg80211_unlink_bss()
513 !bss->pub.hidden_beacon_bss) in cfg80211_bss_expire_oldest()
831 struct cfg80211_bss *res = &intbss->pub; in cfg80211_scan_6ghz()
1519 if (!cfg80211_bss_type_match(bss->pub.capability, in cfg80211_get_bss()
1520 bss->pub.channel->band, bss_type)) in cfg80211_get_bss()
1523 bss_privacy = (bss->pub.capability & WLAN_CAPABILITY_PRIVACY); in cfg80211_get_bss()
1527 if (channel && bss->pub.channel != channel) in cfg80211_get_bss()
1529 if (!is_valid_ether_addr(bss->pub.bssid)) in cfg80211_get_bss()
1535 if (is_bss(&bss->pub, bssid, ssid, ssid_len)) { in cfg80211_get_bss()
1545 trace_cfg80211_return_bss(&res->pub); in cfg80211_get_bss()
1546 return &res->pub; in cfg80211_get_bss()
1562 cmp = cmp_bss(&bss->pub, &tbss->pub, BSS_CMP_REGULAR); in rb_insert_bss()
1590 r = cmp_bss(&res->pub, &bss->pub, mode); in rb_find_bss()
1613 ies = rcu_access_pointer(new->pub.beacon_ies); in cfg80211_combine_bsses()
1641 if (!ether_addr_equal(bss->pub.bssid, new->pub.bssid)) in cfg80211_combine_bsses()
1643 if (bss->pub.channel != new->pub.channel) in cfg80211_combine_bsses()
1645 if (bss->pub.scan_width != new->pub.scan_width) in cfg80211_combine_bsses()
1647 if (rcu_access_pointer(bss->pub.beacon_ies)) in cfg80211_combine_bsses()
1649 ies = rcu_access_pointer(bss->pub.ies); in cfg80211_combine_bsses()
1657 if (WARN_ON_ONCE(bss->pub.hidden_beacon_bss)) in cfg80211_combine_bsses()
1663 bss->pub.hidden_beacon_bss = &new->pub; in cfg80211_combine_bsses()
1665 rcu_assign_pointer(bss->pub.beacon_ies, in cfg80211_combine_bsses()
1666 new->pub.beacon_ies); in cfg80211_combine_bsses()
1686 ies = rcu_access_pointer(bss->pub.beacon_ies); in cfg80211_update_hidden_bsses()
1689 rcu_assign_pointer(bss->pub.beacon_ies, new_ies); in cfg80211_update_hidden_bsses()
1702 if (rcu_access_pointer(new->pub.proberesp_ies)) { in cfg80211_update_known_bss()
1705 old = rcu_access_pointer(known->pub.proberesp_ies); in cfg80211_update_known_bss()
1707 rcu_assign_pointer(known->pub.proberesp_ies, in cfg80211_update_known_bss()
1708 new->pub.proberesp_ies); in cfg80211_update_known_bss()
1710 rcu_assign_pointer(known->pub.ies, in cfg80211_update_known_bss()
1711 new->pub.proberesp_ies); in cfg80211_update_known_bss()
1714 } else if (rcu_access_pointer(new->pub.beacon_ies)) { in cfg80211_update_known_bss()
1717 if (known->pub.hidden_beacon_bss && in cfg80211_update_known_bss()
1730 f = rcu_access_pointer(new->pub.beacon_ies); in cfg80211_update_known_bss()
1735 old = rcu_access_pointer(known->pub.beacon_ies); in cfg80211_update_known_bss()
1737 rcu_assign_pointer(known->pub.beacon_ies, new->pub.beacon_ies); in cfg80211_update_known_bss()
1740 if (old == rcu_access_pointer(known->pub.ies)) in cfg80211_update_known_bss()
1741 rcu_assign_pointer(known->pub.ies, new->pub.beacon_ies); in cfg80211_update_known_bss()
1744 rcu_access_pointer(new->pub.beacon_ies), in cfg80211_update_known_bss()
1751 known->pub.beacon_interval = new->pub.beacon_interval; in cfg80211_update_known_bss()
1757 known->pub.signal = new->pub.signal; in cfg80211_update_known_bss()
1758 known->pub.capability = new->pub.capability; in cfg80211_update_known_bss()
1762 known->pub.chains = new->pub.chains; in cfg80211_update_known_bss()
1763 memcpy(known->pub.chain_signal, new->pub.chain_signal, in cfg80211_update_known_bss()
1766 known->pub.max_bssid_indicator = new->pub.max_bssid_indicator; in cfg80211_update_known_bss()
1767 known->pub.bssid_index = new->pub.bssid_index; in cfg80211_update_known_bss()
1780 if (WARN_ON(!tmp->pub.channel)) in __cfg80211_bss_update()
1785 if (WARN_ON(!rcu_access_pointer(tmp->pub.ies))) { in __cfg80211_bss_update()
1807 ies = (void *)rcu_dereference(tmp->pub.beacon_ies); in __cfg80211_bss_update()
1810 ies = (void *)rcu_dereference(tmp->pub.proberesp_ies); in __cfg80211_bss_update()
1818 INIT_LIST_HEAD(&new->pub.nontrans_list); in __cfg80211_bss_update()
1820 new->pub.transmitted_bss = NULL; in __cfg80211_bss_update()
1822 if (rcu_access_pointer(tmp->pub.proberesp_ies)) { in __cfg80211_bss_update()
1828 new->pub.hidden_beacon_bss = &hidden->pub; in __cfg80211_bss_update()
1832 rcu_assign_pointer(new->pub.beacon_ies, in __cfg80211_bss_update()
1833 hidden->pub.beacon_ies); in __cfg80211_bss_update()
1855 if (tmp->pub.transmitted_bss) { in __cfg80211_bss_update()
1856 new->pub.transmitted_bss = tmp->pub.transmitted_bss; in __cfg80211_bss_update()
1857 bss_ref_get(rdev, bss_from_pub(tmp->pub.transmitted_bss)); in __cfg80211_bss_update()
2058 memcpy(tmp.pub.bssid, data->bssid, ETH_ALEN); in cfg80211_inform_single_bss_data()
2059 tmp.pub.channel = channel; in cfg80211_inform_single_bss_data()
2060 tmp.pub.scan_width = drv_data->scan_width; in cfg80211_inform_single_bss_data()
2062 tmp.pub.signal = drv_data->signal; in cfg80211_inform_single_bss_data()
2064 tmp.pub.signal = 0; in cfg80211_inform_single_bss_data()
2065 tmp.pub.beacon_interval = data->beacon_interval; in cfg80211_inform_single_bss_data()
2066 tmp.pub.capability = data->capability; in cfg80211_inform_single_bss_data()
2072 tmp.pub.transmitted_bss = data->source_bss; in cfg80211_inform_single_bss_data()
2074 tmp.pub.bssid_index = data->bssid_index; in cfg80211_inform_single_bss_data()
2075 tmp.pub.max_bssid_indicator = data->max_bssid_indicator; in cfg80211_inform_single_bss_data()
2114 rcu_assign_pointer(tmp.pub.beacon_ies, ies); in cfg80211_inform_single_bss_data()
2117 rcu_assign_pointer(tmp.pub.proberesp_ies, ies); in cfg80211_inform_single_bss_data()
2120 rcu_assign_pointer(tmp.pub.ies, ies); in cfg80211_inform_single_bss_data()
2128 rdev_inform_bss(rdev, &res->pub, ies, drv_data->drv_data); in cfg80211_inform_single_bss_data()
2134 if (cfg80211_add_nontrans_list(data->source_bss, &res->pub)) { in cfg80211_inform_single_bss_data()
2146 trace_cfg80211_return_bss(&res->pub); in cfg80211_inform_single_bss_data()
2148 return &res->pub; in cfg80211_inform_single_bss_data()
2866 rcu_assign_pointer(tmp.pub.proberesp_ies, ies); in cfg80211_inform_single_bss_frame_data()
2868 rcu_assign_pointer(tmp.pub.beacon_ies, ies); in cfg80211_inform_single_bss_frame_data()
2869 rcu_assign_pointer(tmp.pub.ies, ies); in cfg80211_inform_single_bss_frame_data()
2871 memcpy(tmp.pub.bssid, bssid, ETH_ALEN); in cfg80211_inform_single_bss_frame_data()
2872 tmp.pub.beacon_interval = beacon_int; in cfg80211_inform_single_bss_frame_data()
2873 tmp.pub.capability = capability; in cfg80211_inform_single_bss_frame_data()
2874 tmp.pub.channel = channel; in cfg80211_inform_single_bss_frame_data()
2875 tmp.pub.scan_width = data->scan_width; in cfg80211_inform_single_bss_frame_data()
2876 tmp.pub.signal = data->signal; in cfg80211_inform_single_bss_frame_data()
2879 tmp.pub.chains = data->chains; in cfg80211_inform_single_bss_frame_data()
2880 memcpy(tmp.pub.chain_signal, data->chain_signal, IEEE80211_MAX_CHAINS); in cfg80211_inform_single_bss_frame_data()
2889 rdev_inform_bss(rdev, &res->pub, ies, data->drv_data); in cfg80211_inform_single_bss_frame_data()
2893 trace_cfg80211_return_bss(&res->pub); in cfg80211_inform_single_bss_frame_data()
2895 return &res->pub; in cfg80211_inform_single_bss_frame_data()
2941 void cfg80211_ref_bss(struct wiphy *wiphy, struct cfg80211_bss *pub) in cfg80211_ref_bss() argument
2945 if (!pub) in cfg80211_ref_bss()
2949 bss_ref_get(rdev, bss_from_pub(pub)); in cfg80211_ref_bss()
2954 void cfg80211_put_bss(struct wiphy *wiphy, struct cfg80211_bss *pub) in cfg80211_put_bss() argument
2958 if (!pub) in cfg80211_put_bss()
2962 bss_ref_put(rdev, bss_from_pub(pub)); in cfg80211_put_bss()
2967 void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *pub) in cfg80211_unlink_bss() argument
2973 if (WARN_ON(!pub)) in cfg80211_unlink_bss()
2976 bss = bss_from_pub(pub); in cfg80211_unlink_bss()
2983 &pub->nontrans_list, in cfg80211_unlink_bss()
3010 if (!chandef || cfg80211_is_sub_chan(chandef, bss->pub.channel, in cfg80211_bss_iter()
3012 iter(wiphy, &bss->pub, iter_data); in cfg80211_bss_iter()
3037 if (cbss->pub.channel == chan) in cfg80211_update_assoc_bss_entry()
3041 if (cbss->pub.transmitted_bss) in cfg80211_update_assoc_bss_entry()
3042 cbss = bss_from_pub(cbss->pub.transmitted_bss); in cfg80211_update_assoc_bss_entry()
3044 cbss->pub.channel = chan; in cfg80211_update_assoc_bss_entry()
3047 if (!cfg80211_bss_type_match(bss->pub.capability, in cfg80211_update_assoc_bss_entry()
3048 bss->pub.channel->band, in cfg80211_update_assoc_bss_entry()
3055 if (!cmp_bss(&bss->pub, &cbss->pub, BSS_CMP_REGULAR)) { in cfg80211_update_assoc_bss_entry()
3064 new->pub.proberesp_ies = NULL; in cfg80211_update_assoc_bss_entry()
3065 new->pub.beacon_ies = NULL; in cfg80211_update_assoc_bss_entry()
3069 &new->pub.nontrans_list, in cfg80211_update_assoc_bss_entry()
3086 &cbss->pub.nontrans_list, in cfg80211_update_assoc_bss_entry()
3089 bss->pub.channel = chan; in cfg80211_update_assoc_bss_entry()
3317 memcpy(iwe.u.ap_addr.sa_data, bss->pub.bssid, ETH_ALEN); in ieee80211_bss()
3325 iwe.u.freq.m = ieee80211_frequency_to_channel(bss->pub.channel->center_freq); in ieee80211_bss()
3334 iwe.u.freq.m = bss->pub.channel->center_freq; in ieee80211_bss()
3349 sig = bss->pub.signal / 100; in ieee80211_bss()
3360 iwe.u.qual.level = bss->pub.signal; in ieee80211_bss()
3362 iwe.u.qual.qual = bss->pub.signal; in ieee80211_bss()
3377 if (bss->pub.capability & WLAN_CAPABILITY_PRIVACY) in ieee80211_bss()
3388 ies = rcu_dereference(bss->pub.ies); in ieee80211_bss()
3518 if (bss->pub.capability & (WLAN_CAPABILITY_ESS | WLAN_CAPABILITY_IBSS) || in ieee80211_bss()
3524 else if (bss->pub.capability & WLAN_CAPABILITY_ESS) in ieee80211_bss()