Lines Matching refs:pub
68 ies = (void *)rcu_access_pointer(bss->pub.beacon_ies); in bss_free()
69 if (ies && !bss->pub.hidden_beacon_bss) in bss_free()
71 ies = (void *)rcu_access_pointer(bss->pub.proberesp_ies); in bss_free()
91 if (bss->pub.hidden_beacon_bss) { in bss_ref_get()
92 bss = container_of(bss->pub.hidden_beacon_bss, in bss_ref_get()
94 pub); in bss_ref_get()
104 if (bss->pub.hidden_beacon_bss) { in bss_ref_put()
106 hbss = container_of(bss->pub.hidden_beacon_bss, in bss_ref_put()
108 pub); in bss_ref_put()
128 if (!bss->pub.hidden_beacon_bss) in __cfg80211_unlink_bss()
598 if (!cfg80211_bss_type_match(bss->pub.capability, in cfg80211_get_bss()
599 bss->pub.channel->band, bss_type)) in cfg80211_get_bss()
602 bss_privacy = (bss->pub.capability & WLAN_CAPABILITY_PRIVACY); in cfg80211_get_bss()
606 if (channel && bss->pub.channel != channel) in cfg80211_get_bss()
608 if (!is_valid_ether_addr(bss->pub.bssid)) in cfg80211_get_bss()
614 if (is_bss(&bss->pub, bssid, ssid, ssid_len)) { in cfg80211_get_bss()
624 trace_cfg80211_return_bss(&res->pub); in cfg80211_get_bss()
625 return &res->pub; in cfg80211_get_bss()
641 cmp = cmp_bss(&bss->pub, &tbss->pub, BSS_CMP_REGULAR); in rb_insert_bss()
669 r = cmp_bss(&res->pub, &bss->pub, mode); in rb_find_bss()
691 ies = rcu_access_pointer(new->pub.beacon_ies); in cfg80211_combine_bsses()
713 if (!ether_addr_equal(bss->pub.bssid, new->pub.bssid)) in cfg80211_combine_bsses()
715 if (bss->pub.channel != new->pub.channel) in cfg80211_combine_bsses()
717 if (bss->pub.scan_width != new->pub.scan_width) in cfg80211_combine_bsses()
719 if (rcu_access_pointer(bss->pub.beacon_ies)) in cfg80211_combine_bsses()
721 ies = rcu_access_pointer(bss->pub.ies); in cfg80211_combine_bsses()
729 if (WARN_ON_ONCE(bss->pub.hidden_beacon_bss)) in cfg80211_combine_bsses()
735 bss->pub.hidden_beacon_bss = &new->pub; in cfg80211_combine_bsses()
737 rcu_assign_pointer(bss->pub.beacon_ies, in cfg80211_combine_bsses()
738 new->pub.beacon_ies); in cfg80211_combine_bsses()
752 if (WARN_ON(!tmp->pub.channel)) in cfg80211_bss_update()
759 if (WARN_ON(!rcu_access_pointer(tmp->pub.ies))) { in cfg80211_bss_update()
768 if (rcu_access_pointer(tmp->pub.proberesp_ies)) { in cfg80211_bss_update()
771 old = rcu_access_pointer(found->pub.proberesp_ies); in cfg80211_bss_update()
773 rcu_assign_pointer(found->pub.proberesp_ies, in cfg80211_bss_update()
774 tmp->pub.proberesp_ies); in cfg80211_bss_update()
776 rcu_assign_pointer(found->pub.ies, in cfg80211_bss_update()
777 tmp->pub.proberesp_ies); in cfg80211_bss_update()
781 } else if (rcu_access_pointer(tmp->pub.beacon_ies)) { in cfg80211_bss_update()
785 if (found->pub.hidden_beacon_bss && in cfg80211_bss_update()
799 f = rcu_access_pointer(tmp->pub.beacon_ies); in cfg80211_bss_update()
805 old = rcu_access_pointer(found->pub.beacon_ies); in cfg80211_bss_update()
807 rcu_assign_pointer(found->pub.beacon_ies, in cfg80211_bss_update()
808 tmp->pub.beacon_ies); in cfg80211_bss_update()
811 if (old == rcu_access_pointer(found->pub.ies)) in cfg80211_bss_update()
812 rcu_assign_pointer(found->pub.ies, in cfg80211_bss_update()
813 tmp->pub.beacon_ies); in cfg80211_bss_update()
820 ies = rcu_access_pointer(bss->pub.beacon_ies); in cfg80211_bss_update()
823 rcu_assign_pointer(bss->pub.beacon_ies, in cfg80211_bss_update()
824 tmp->pub.beacon_ies); in cfg80211_bss_update()
832 found->pub.beacon_interval = tmp->pub.beacon_interval; in cfg80211_bss_update()
838 found->pub.signal = tmp->pub.signal; in cfg80211_bss_update()
839 found->pub.capability = tmp->pub.capability; in cfg80211_bss_update()
855 ies = (void *)rcu_dereference(tmp->pub.beacon_ies); in cfg80211_bss_update()
858 ies = (void *)rcu_dereference(tmp->pub.proberesp_ies); in cfg80211_bss_update()
867 if (rcu_access_pointer(tmp->pub.proberesp_ies)) { in cfg80211_bss_update()
873 new->pub.hidden_beacon_bss = &hidden->pub; in cfg80211_bss_update()
877 rcu_assign_pointer(new->pub.beacon_ies, in cfg80211_bss_update()
878 hidden->pub.beacon_ies); in cfg80211_bss_update()
966 memcpy(tmp.pub.bssid, bssid, ETH_ALEN); in cfg80211_inform_bss_data()
967 tmp.pub.channel = channel; in cfg80211_inform_bss_data()
968 tmp.pub.scan_width = data->scan_width; in cfg80211_inform_bss_data()
969 tmp.pub.signal = data->signal; in cfg80211_inform_bss_data()
970 tmp.pub.beacon_interval = beacon_interval; in cfg80211_inform_bss_data()
971 tmp.pub.capability = capability; in cfg80211_inform_bss_data()
995 rcu_assign_pointer(tmp.pub.beacon_ies, ies); in cfg80211_inform_bss_data()
998 rcu_assign_pointer(tmp.pub.proberesp_ies, ies); in cfg80211_inform_bss_data()
1001 rcu_assign_pointer(tmp.pub.ies, ies); in cfg80211_inform_bss_data()
1010 bss_type = res->pub.capability & WLAN_CAPABILITY_DMG_TYPE_MASK; in cfg80211_inform_bss_data()
1015 if (res->pub.capability & WLAN_CAPABILITY_ESS) in cfg80211_inform_bss_data()
1019 trace_cfg80211_return_bss(&res->pub); in cfg80211_inform_bss_data()
1021 return &res->pub; in cfg80211_inform_bss_data()
1073 rcu_assign_pointer(tmp.pub.proberesp_ies, ies); in cfg80211_inform_bss_frame_data()
1075 rcu_assign_pointer(tmp.pub.beacon_ies, ies); in cfg80211_inform_bss_frame_data()
1076 rcu_assign_pointer(tmp.pub.ies, ies); in cfg80211_inform_bss_frame_data()
1078 memcpy(tmp.pub.bssid, mgmt->bssid, ETH_ALEN); in cfg80211_inform_bss_frame_data()
1079 tmp.pub.channel = channel; in cfg80211_inform_bss_frame_data()
1080 tmp.pub.scan_width = data->scan_width; in cfg80211_inform_bss_frame_data()
1081 tmp.pub.signal = data->signal; in cfg80211_inform_bss_frame_data()
1082 tmp.pub.beacon_interval = le16_to_cpu(mgmt->u.probe_resp.beacon_int); in cfg80211_inform_bss_frame_data()
1083 tmp.pub.capability = le16_to_cpu(mgmt->u.probe_resp.capab_info); in cfg80211_inform_bss_frame_data()
1093 bss_type = res->pub.capability & WLAN_CAPABILITY_DMG_TYPE_MASK; in cfg80211_inform_bss_frame_data()
1098 if (res->pub.capability & WLAN_CAPABILITY_ESS) in cfg80211_inform_bss_frame_data()
1102 trace_cfg80211_return_bss(&res->pub); in cfg80211_inform_bss_frame_data()
1104 return &res->pub; in cfg80211_inform_bss_frame_data()
1108 void cfg80211_ref_bss(struct wiphy *wiphy, struct cfg80211_bss *pub) in cfg80211_ref_bss() argument
1113 if (!pub) in cfg80211_ref_bss()
1116 bss = container_of(pub, struct cfg80211_internal_bss, pub); in cfg80211_ref_bss()
1124 void cfg80211_put_bss(struct wiphy *wiphy, struct cfg80211_bss *pub) in cfg80211_put_bss() argument
1129 if (!pub) in cfg80211_put_bss()
1132 bss = container_of(pub, struct cfg80211_internal_bss, pub); in cfg80211_put_bss()
1140 void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *pub) in cfg80211_unlink_bss() argument
1145 if (WARN_ON(!pub)) in cfg80211_unlink_bss()
1148 bss = container_of(pub, struct cfg80211_internal_bss, pub); in cfg80211_unlink_bss()
1376 memcpy(iwe.u.ap_addr.sa_data, bss->pub.bssid, ETH_ALEN); in ieee80211_bss()
1384 iwe.u.freq.m = ieee80211_frequency_to_channel(bss->pub.channel->center_freq); in ieee80211_bss()
1393 iwe.u.freq.m = bss->pub.channel->center_freq; in ieee80211_bss()
1408 sig = bss->pub.signal / 100; in ieee80211_bss()
1419 iwe.u.qual.level = bss->pub.signal; in ieee80211_bss()
1421 iwe.u.qual.qual = bss->pub.signal; in ieee80211_bss()
1436 if (bss->pub.capability & WLAN_CAPABILITY_PRIVACY) in ieee80211_bss()
1447 ies = rcu_dereference(bss->pub.ies); in ieee80211_bss()
1577 if (bss->pub.capability & (WLAN_CAPABILITY_ESS | WLAN_CAPABILITY_IBSS) || in ieee80211_bss()
1583 else if (bss->pub.capability & WLAN_CAPABILITY_ESS) in ieee80211_bss()