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()
353 const u8 *cfg80211_find_ie(u8 eid, const u8 *ies, int len) in cfg80211_find_ie() argument
355 while (len > 2 && ies[0] != eid) { in cfg80211_find_ie()
356 len -= ies[1] + 2; in cfg80211_find_ie()
357 ies += ies[1] + 2; in cfg80211_find_ie()
361 if (len < 2 + ies[1]) in cfg80211_find_ie()
363 return ies; in cfg80211_find_ie()
368 const u8 *ies, int len) in cfg80211_find_vendor_ie() argument
371 const u8 *pos = ies, *end = ies + len; in cfg80211_find_vendor_ie()
401 const struct cfg80211_bss_ies *ies; in is_bss() local
410 ies = rcu_access_pointer(a->ies); in is_bss()
411 if (!ies) in is_bss()
413 ssidie = cfg80211_find_ie(WLAN_EID_SSID, ies->data, ies->len); in is_bss()
445 a_ies = rcu_access_pointer(a->ies); in cmp_bss()
448 b_ies = rcu_access_pointer(b->ies); in cmp_bss()
685 const struct cfg80211_bss_ies *ies; in cfg80211_combine_bsses() local
691 ies = rcu_access_pointer(new->pub.beacon_ies); in cfg80211_combine_bsses()
692 if (WARN_ON(!ies)) in cfg80211_combine_bsses()
695 ie = cfg80211_find_ie(WLAN_EID_SSID, ies->data, ies->len); in cfg80211_combine_bsses()
721 ies = rcu_access_pointer(bss->pub.ies); in cfg80211_combine_bsses()
722 if (!ies) in cfg80211_combine_bsses()
724 ie = cfg80211_find_ie(WLAN_EID_SSID, ies->data, ies->len); in cfg80211_combine_bsses()
759 if (WARN_ON(!rcu_access_pointer(tmp->pub.ies))) { in cfg80211_bss_update()
776 rcu_assign_pointer(found->pub.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()
818 const struct cfg80211_bss_ies *ies; in cfg80211_bss_update() local
820 ies = rcu_access_pointer(bss->pub.beacon_ies); in cfg80211_bss_update()
821 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()
949 struct cfg80211_bss_ies *ies; in cfg80211_inform_bss_data() local
982 ies = kzalloc(sizeof(*ies) + ielen, gfp); in cfg80211_inform_bss_data()
983 if (!ies) in cfg80211_inform_bss_data()
985 ies->len = ielen; in cfg80211_inform_bss_data()
986 ies->tsf = tsf; in cfg80211_inform_bss_data()
987 ies->from_beacon = false; in cfg80211_inform_bss_data()
988 memcpy(ies->data, ie, ielen); in cfg80211_inform_bss_data()
992 ies->from_beacon = true; 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()
1034 struct cfg80211_bss_ies *ies; in cfg80211_inform_bss_frame_data() local
1064 ies = kzalloc(sizeof(*ies) + ielen, gfp); in cfg80211_inform_bss_frame_data()
1065 if (!ies) in cfg80211_inform_bss_frame_data()
1067 ies->len = ielen; in cfg80211_inform_bss_frame_data()
1068 ies->tsf = le64_to_cpu(mgmt->u.probe_resp.timestamp); in cfg80211_inform_bss_frame_data()
1069 ies->from_beacon = ieee80211_is_beacon(mgmt->frame_control); in cfg80211_inform_bss_frame_data()
1070 memcpy(ies->data, mgmt->u.probe_resp.variable, ielen); in cfg80211_inform_bss_frame_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()
1314 const struct cfg80211_bss_ies *ies, in ieee80211_scan_add_ies() argument
1320 if (!ies) in ieee80211_scan_add_ies()
1327 pos = ies->data; in ieee80211_scan_add_ies()
1328 end = pos + ies->len; in ieee80211_scan_add_ies()
1365 const struct cfg80211_bss_ies *ies; in ieee80211_bss() local
1447 ies = rcu_dereference(bss->pub.ies); in ieee80211_bss()
1448 rem = ies->len; in ieee80211_bss()
1449 ie = ies->data; in ieee80211_bss()
1596 sprintf(buf, "tsf=%016llx", (unsigned long long)(ies->tsf)); in ieee80211_bss()
1612 current_ev = ieee80211_scan_add_ies(info, ies, current_ev, end_buf); in ieee80211_bss()