Lines Matching refs:pub
125 ies = (void *)rcu_access_pointer(bss->pub.beacon_ies);
126 if (ies && !bss->pub.hidden_beacon_bss)
128 ies = (void *)rcu_access_pointer(bss->pub.proberesp_ies);
149 if (bss->pub.hidden_beacon_bss)
150 bss_from_pub(bss->pub.hidden_beacon_bss)->refcount++;
152 if (bss->pub.transmitted_bss)
153 bss_from_pub(bss->pub.transmitted_bss)->refcount++;
161 if (bss->pub.hidden_beacon_bss) {
164 hbss = bss_from_pub(bss->pub.hidden_beacon_bss);
170 if (bss->pub.transmitted_bss) {
173 tbss = bss_from_pub(bss->pub.transmitted_bss);
194 if (!bss->pub.hidden_beacon_bss)
204 list_del_init(&bss->pub.nontrans_list);
513 !bss->pub.hidden_beacon_bss)
831 struct cfg80211_bss *res = &intbss->pub;
1519 if (!cfg80211_bss_type_match(bss->pub.capability,
1520 bss->pub.channel->band, bss_type))
1523 bss_privacy = (bss->pub.capability & WLAN_CAPABILITY_PRIVACY);
1527 if (channel && bss->pub.channel != channel)
1529 if (!is_valid_ether_addr(bss->pub.bssid))
1535 if (is_bss(&bss->pub, bssid, ssid, ssid_len)) {
1545 trace_cfg80211_return_bss(&res->pub);
1546 return &res->pub;
1562 cmp = cmp_bss(&bss->pub, &tbss->pub, BSS_CMP_REGULAR);
1590 r = cmp_bss(&res->pub, &bss->pub, mode);
1613 ies = rcu_access_pointer(new->pub.beacon_ies);
1641 if (!ether_addr_equal(bss->pub.bssid, new->pub.bssid))
1643 if (bss->pub.channel != new->pub.channel)
1645 if (bss->pub.scan_width != new->pub.scan_width)
1647 if (rcu_access_pointer(bss->pub.beacon_ies))
1649 ies = rcu_access_pointer(bss->pub.ies);
1657 if (WARN_ON_ONCE(bss->pub.hidden_beacon_bss))
1663 bss->pub.hidden_beacon_bss = &new->pub;
1665 rcu_assign_pointer(bss->pub.beacon_ies,
1666 new->pub.beacon_ies);
1686 ies = rcu_access_pointer(bss->pub.beacon_ies);
1689 rcu_assign_pointer(bss->pub.beacon_ies, new_ies);
1702 if (rcu_access_pointer(new->pub.proberesp_ies)) {
1705 old = rcu_access_pointer(known->pub.proberesp_ies);
1707 rcu_assign_pointer(known->pub.proberesp_ies,
1708 new->pub.proberesp_ies);
1710 rcu_assign_pointer(known->pub.ies,
1711 new->pub.proberesp_ies);
1714 } else if (rcu_access_pointer(new->pub.beacon_ies)) {
1717 if (known->pub.hidden_beacon_bss &&
1730 f = rcu_access_pointer(new->pub.beacon_ies);
1735 old = rcu_access_pointer(known->pub.beacon_ies);
1737 rcu_assign_pointer(known->pub.beacon_ies, new->pub.beacon_ies);
1740 if (old == rcu_access_pointer(known->pub.ies))
1741 rcu_assign_pointer(known->pub.ies, new->pub.beacon_ies);
1744 rcu_access_pointer(new->pub.beacon_ies),
1751 known->pub.beacon_interval = new->pub.beacon_interval;
1757 known->pub.signal = new->pub.signal;
1758 known->pub.capability = new->pub.capability;
1762 known->pub.chains = new->pub.chains;
1763 memcpy(known->pub.chain_signal, new->pub.chain_signal,
1766 known->pub.max_bssid_indicator = new->pub.max_bssid_indicator;
1767 known->pub.bssid_index = new->pub.bssid_index;
1780 if (WARN_ON(!tmp->pub.channel))
1785 if (WARN_ON(!rcu_access_pointer(tmp->pub.ies))) {
1807 ies = (void *)rcu_dereference(tmp->pub.beacon_ies);
1810 ies = (void *)rcu_dereference(tmp->pub.proberesp_ies);
1818 INIT_LIST_HEAD(&new->pub.nontrans_list);
1820 new->pub.transmitted_bss = NULL;
1822 if (rcu_access_pointer(tmp->pub.proberesp_ies)) {
1828 new->pub.hidden_beacon_bss = &hidden->pub;
1833 ies = (void *)rcu_access_pointer(new->pub.beacon_ies);
1834 rcu_assign_pointer(new->pub.beacon_ies,
1835 hidden->pub.beacon_ies);
1859 if (tmp->pub.transmitted_bss) {
1860 new->pub.transmitted_bss = tmp->pub.transmitted_bss;
1861 bss_ref_get(rdev, bss_from_pub(tmp->pub.transmitted_bss));
2062 memcpy(tmp.pub.bssid, data->bssid, ETH_ALEN);
2063 tmp.pub.channel = channel;
2064 tmp.pub.scan_width = drv_data->scan_width;
2066 tmp.pub.signal = drv_data->signal;
2068 tmp.pub.signal = 0;
2069 tmp.pub.beacon_interval = data->beacon_interval;
2070 tmp.pub.capability = data->capability;
2076 tmp.pub.transmitted_bss = data->source_bss;
2078 tmp.pub.bssid_index = data->bssid_index;
2079 tmp.pub.max_bssid_indicator = data->max_bssid_indicator;
2118 rcu_assign_pointer(tmp.pub.beacon_ies, ies);
2121 rcu_assign_pointer(tmp.pub.proberesp_ies, ies);
2124 rcu_assign_pointer(tmp.pub.ies, ies);
2132 rdev_inform_bss(rdev, &res->pub, ies, drv_data->drv_data);
2138 if (cfg80211_add_nontrans_list(data->source_bss, &res->pub)) {
2150 trace_cfg80211_return_bss(&res->pub);
2152 return &res->pub;
2885 rcu_assign_pointer(tmp.pub.proberesp_ies, ies);
2887 rcu_assign_pointer(tmp.pub.beacon_ies, ies);
2888 rcu_assign_pointer(tmp.pub.ies, ies);
2890 memcpy(tmp.pub.bssid, bssid, ETH_ALEN);
2891 tmp.pub.beacon_interval = beacon_int;
2892 tmp.pub.capability = capability;
2893 tmp.pub.channel = channel;
2894 tmp.pub.scan_width = data->scan_width;
2895 tmp.pub.signal = data->signal;
2898 tmp.pub.chains = data->chains;
2899 memcpy(tmp.pub.chain_signal, data->chain_signal, IEEE80211_MAX_CHAINS);
2908 rdev_inform_bss(rdev, &res->pub, ies, data->drv_data);
2912 trace_cfg80211_return_bss(&res->pub);
2914 return &res->pub;
2960 void cfg80211_ref_bss(struct wiphy *wiphy, struct cfg80211_bss *pub)
2964 if (!pub)
2968 bss_ref_get(rdev, bss_from_pub(pub));
2973 void cfg80211_put_bss(struct wiphy *wiphy, struct cfg80211_bss *pub)
2977 if (!pub)
2981 bss_ref_put(rdev, bss_from_pub(pub));
2986 void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *pub)
2992 if (WARN_ON(!pub))
2995 bss = bss_from_pub(pub);
3002 &pub->nontrans_list,
3029 if (!chandef || cfg80211_is_sub_chan(chandef, bss->pub.channel,
3031 iter(wiphy, &bss->pub, iter_data);
3056 if (cbss->pub.channel == chan)
3060 if (cbss->pub.transmitted_bss)
3061 cbss = bss_from_pub(cbss->pub.transmitted_bss);
3063 cbss->pub.channel = chan;
3066 if (!cfg80211_bss_type_match(bss->pub.capability,
3067 bss->pub.channel->band,
3074 if (!cmp_bss(&bss->pub, &cbss->pub, BSS_CMP_REGULAR)) {
3083 new->pub.proberesp_ies = NULL;
3084 new->pub.beacon_ies = NULL;
3088 &new->pub.nontrans_list,
3105 &cbss->pub.nontrans_list,
3108 bss->pub.channel = chan;
3336 memcpy(iwe.u.ap_addr.sa_data, bss->pub.bssid, ETH_ALEN);
3344 iwe.u.freq.m = ieee80211_frequency_to_channel(bss->pub.channel->center_freq);
3353 iwe.u.freq.m = bss->pub.channel->center_freq;
3368 sig = bss->pub.signal / 100;
3379 iwe.u.qual.level = bss->pub.signal;
3381 iwe.u.qual.qual = bss->pub.signal;
3396 if (bss->pub.capability & WLAN_CAPABILITY_PRIVACY)
3407 ies = rcu_dereference(bss->pub.ies);
3537 if (bss->pub.capability & (WLAN_CAPABILITY_ESS | WLAN_CAPABILITY_IBSS) ||
3543 else if (bss->pub.capability & WLAN_CAPABILITY_ESS)