Lines Matching refs:ies
63 struct cfg80211_bss_ies *ies; in bss_free() local
68 ies = (void *)rcu_access_pointer(bss->pub.beacon_ies); in bss_free()
69 if (ies && !bss->pub.hidden_beacon_bss) in bss_free()
70 kfree_rcu(ies, rcu_head); in bss_free()
71 ies = (void *)rcu_access_pointer(bss->pub.proberesp_ies); in bss_free()
72 if (ies) in bss_free()
73 kfree_rcu(ies, rcu_head); in bss_free()
354 const u8 *cfg80211_find_ie(u8 eid, const u8 *ies, int len) in cfg80211_find_ie() argument
356 while (len > 2 && ies[0] != eid) { in cfg80211_find_ie()
357 len -= ies[1] + 2; in cfg80211_find_ie()
358 ies += ies[1] + 2; in cfg80211_find_ie()
362 if (len < 2 + ies[1]) in cfg80211_find_ie()
364 return ies; in cfg80211_find_ie()
369 const u8 *ies, int len) in cfg80211_find_vendor_ie() argument
372 const u8 *pos = ies, *end = ies + len; in cfg80211_find_vendor_ie()
402 const struct cfg80211_bss_ies *ies; in is_bss() local
411 ies = rcu_access_pointer(a->ies); in is_bss()
412 if (!ies) in is_bss()
414 ssidie = cfg80211_find_ie(WLAN_EID_SSID, ies->data, ies->len); in is_bss()
446 a_ies = rcu_access_pointer(a->ies); in cmp_bss()
449 b_ies = rcu_access_pointer(b->ies); in cmp_bss()
686 const struct cfg80211_bss_ies *ies; in cfg80211_combine_bsses() local
692 ies = rcu_access_pointer(new->pub.beacon_ies); in cfg80211_combine_bsses()
693 if (WARN_ON(!ies)) in cfg80211_combine_bsses()
696 ie = cfg80211_find_ie(WLAN_EID_SSID, ies->data, ies->len); in cfg80211_combine_bsses()
722 ies = rcu_access_pointer(bss->pub.ies); in cfg80211_combine_bsses()
723 if (!ies) in cfg80211_combine_bsses()
725 ie = cfg80211_find_ie(WLAN_EID_SSID, ies->data, ies->len); in cfg80211_combine_bsses()
760 if (WARN_ON(!rcu_access_pointer(tmp->pub.ies))) { in cfg80211_bss_update()
777 rcu_assign_pointer(found->pub.ies, in cfg80211_bss_update()
812 if (old == rcu_access_pointer(found->pub.ies)) in cfg80211_bss_update()
813 rcu_assign_pointer(found->pub.ies, in cfg80211_bss_update()
819 const struct cfg80211_bss_ies *ies; in cfg80211_bss_update() local
821 ies = rcu_access_pointer(bss->pub.beacon_ies); in cfg80211_bss_update()
822 WARN_ON(ies != old); in cfg80211_bss_update()
845 struct cfg80211_bss_ies *ies; in cfg80211_bss_update() local
855 ies = (void *)rcu_dereference(tmp->pub.beacon_ies); in cfg80211_bss_update()
856 if (ies) in cfg80211_bss_update()
857 kfree_rcu(ies, rcu_head); in cfg80211_bss_update()
858 ies = (void *)rcu_dereference(tmp->pub.proberesp_ies); in cfg80211_bss_update()
859 if (ies) in cfg80211_bss_update()
860 kfree_rcu(ies, rcu_head); in cfg80211_bss_update()
950 struct cfg80211_bss_ies *ies; in cfg80211_inform_bss_width() local
981 ies = kzalloc(sizeof(*ies) + ielen, gfp); in cfg80211_inform_bss_width()
982 if (!ies) in cfg80211_inform_bss_width()
984 ies->len = ielen; in cfg80211_inform_bss_width()
985 ies->tsf = tsf; in cfg80211_inform_bss_width()
986 ies->from_beacon = false; in cfg80211_inform_bss_width()
987 memcpy(ies->data, ie, ielen); in cfg80211_inform_bss_width()
991 ies->from_beacon = true; in cfg80211_inform_bss_width()
994 rcu_assign_pointer(tmp.pub.beacon_ies, ies); in cfg80211_inform_bss_width()
997 rcu_assign_pointer(tmp.pub.proberesp_ies, ies); in cfg80211_inform_bss_width()
1000 rcu_assign_pointer(tmp.pub.ies, ies); in cfg80211_inform_bss_width()
1033 struct cfg80211_bss_ies *ies; in cfg80211_inform_bss_width_frame() local
1064 ies = kzalloc(sizeof(*ies) + ielen, gfp); in cfg80211_inform_bss_width_frame()
1065 if (!ies) in cfg80211_inform_bss_width_frame()
1067 ies->len = ielen; in cfg80211_inform_bss_width_frame()
1068 ies->tsf = le64_to_cpu(mgmt->u.probe_resp.timestamp); in cfg80211_inform_bss_width_frame()
1069 ies->from_beacon = ieee80211_is_beacon(mgmt->frame_control); in cfg80211_inform_bss_width_frame()
1070 memcpy(ies->data, mgmt->u.probe_resp.variable, ielen); in cfg80211_inform_bss_width_frame()
1073 rcu_assign_pointer(tmp.pub.proberesp_ies, ies); in cfg80211_inform_bss_width_frame()
1075 rcu_assign_pointer(tmp.pub.beacon_ies, ies); in cfg80211_inform_bss_width_frame()
1076 rcu_assign_pointer(tmp.pub.ies, ies); in cfg80211_inform_bss_width_frame()
1313 const struct cfg80211_bss_ies *ies, in ieee80211_scan_add_ies() argument
1319 if (!ies) in ieee80211_scan_add_ies()
1326 pos = ies->data; in ieee80211_scan_add_ies()
1327 end = pos + ies->len; in ieee80211_scan_add_ies()
1364 const struct cfg80211_bss_ies *ies; in ieee80211_bss() local
1446 ies = rcu_dereference(bss->pub.ies); in ieee80211_bss()
1447 rem = ies->len; in ieee80211_bss()
1448 ie = ies->data; in ieee80211_bss()
1595 sprintf(buf, "tsf=%016llx", (unsigned long long)(ies->tsf)); in ieee80211_bss()
1611 current_ev = ieee80211_scan_add_ies(info, ies, current_ev, end_buf); in ieee80211_bss()