Lines Matching full:links
51 sdata->wdev.links[link_id].addr); in ieee80211_link_init()
78 struct link_container **links, u16 mask) in ieee80211_tear_down_links() argument
87 link = &links[link_id]->data; in ieee80211_tear_down_links()
102 struct link_container **links) in ieee80211_free_links() argument
107 kfree(links[link_id]); in ieee80211_free_links()
137 u16 links) in ieee80211_set_vif_links_bitmaps() argument
139 sdata->vif.valid_links = links; in ieee80211_set_vif_links_bitmaps()
141 if (!links) { in ieee80211_set_vif_links_bitmaps()
148 /* in an AP all links are always active */ in ieee80211_set_vif_links_bitmaps()
149 sdata->vif.active_links = links; in ieee80211_set_vif_links_bitmaps()
154 WARN_ON(hweight16(links) > 1); in ieee80211_set_vif_links_bitmaps()
155 sdata->vif.active_links = links; in ieee80211_set_vif_links_bitmaps()
172 struct link_container *links[IEEE80211_MLD_MAX_NUM_LINKS] = {}, *link; in ieee80211_vif_update_links() local
179 memset(to_free, 0, sizeof(links)); in ieee80211_vif_update_links()
184 /* if there were no old links, need to clear the pointers to deflink */ in ieee80211_vif_update_links()
195 links[link_id] = link; in ieee80211_vif_update_links()
205 /* grab old links to free later */ in ieee80211_vif_update_links()
213 typeof(*links[link_id]), in ieee80211_vif_update_links()
226 link = links[link_id]; in ieee80211_vif_update_links()
254 /* and free (only) the newly allocated links */ in ieee80211_vif_update_links()
255 memset(to_free, 0, sizeof(links)); in ieee80211_vif_update_links()
259 /* use deflink/bss_conf again if and only if there are no more links */ in ieee80211_vif_update_links()
266 kfree(links[link_id]); in ieee80211_vif_update_links()
267 links[link_id] = NULL; in ieee80211_vif_update_links()
279 struct link_container *links[IEEE80211_MLD_MAX_NUM_LINKS]; in ieee80211_vif_set_links() local
282 ret = ieee80211_vif_update_links(sdata, links, new_links); in ieee80211_vif_set_links()
283 ieee80211_free_links(sdata, links); in ieee80211_vif_set_links()
290 struct link_container *links[IEEE80211_MLD_MAX_NUM_LINKS]; in ieee80211_vif_clear_links() local
293 * The locking here is different because when we free links in ieee80211_vif_clear_links()
299 ieee80211_vif_update_links(sdata, links, 0); in ieee80211_vif_clear_links()
302 ieee80211_free_links(sdata, links); in ieee80211_vif_clear_links()
323 /* cannot activate links that don't exist */ in _ieee80211_set_active_links()
432 * then enable the additional links in ieee80211_set_active_links()
462 /* cannot activate links that don't exist */ in ieee80211_set_active_links_async()