Lines Matching full:links

277 			cr.links[0].bssid = bssid;  in cfg80211_conn_work()
382 cr.links[0].bssid = mgmt->bssid; in cfg80211_sme_rx_auth()
474 if (!wdev->links[link].client.current_bss) in cfg80211_wdev_release_bsses()
476 cfg80211_unhold_bss(wdev->links[link].client.current_bss); in cfg80211_wdev_release_bsses()
478 &wdev->links[link].client.current_bss->pub); in cfg80211_wdev_release_bsses()
479 wdev->links[link].client.current_bss = NULL; in cfg80211_wdev_release_bsses()
488 if (!wdev->links[link].client.current_bss || in cfg80211_wdev_release_link_bsses()
491 cfg80211_unhold_bss(wdev->links[link].client.current_bss); in cfg80211_wdev_release_link_bsses()
493 &wdev->links[link].client.current_bss->pub); in cfg80211_wdev_release_link_bsses()
494 wdev->links[link].client.current_bss = NULL; in cfg80211_wdev_release_link_bsses()
724 if (!cr->links[link].bss) in cfg80211_connect_result_release_bsses()
726 cfg80211_unhold_bss(bss_from_pub(cr->links[link].bss)); in cfg80211_connect_result_release_bsses()
727 cfg80211_put_bss(wdev->wiphy, cr->links[link].bss); in cfg80211_connect_result_release_bsses()
764 if (WARN_ON(!cr->links[link].addr)) in __cfg80211_connect_result()
775 connected_addr = cr->valid_links ? cr->ap_mld_addr : cr->links[0].bssid; in __cfg80211_connect_result()
807 if (WARN_ON_ONCE(!cr->links[link].bss)) in __cfg80211_connect_result()
814 if (cr->links[link].status != WLAN_STATUS_SUCCESS) in __cfg80211_connect_result()
817 if (cr->links[link].bss) in __cfg80211_connect_result()
820 cr->links[link].bss = in __cfg80211_connect_result()
822 cr->links[link].bssid, in __cfg80211_connect_result()
827 if (!cr->links[link].bss) { in __cfg80211_connect_result()
831 cfg80211_hold_bss(bss_from_pub(cr->links[link].bss)); in __cfg80211_connect_result()
852 memset(wdev->links, 0, sizeof(wdev->links)); in __cfg80211_connect_result()
854 if (cr->links[link].status == WLAN_STATUS_SUCCESS) in __cfg80211_connect_result()
857 /* don't require bss pointer for failed links */ in __cfg80211_connect_result()
858 if (!cr->links[link].bss) in __cfg80211_connect_result()
860 cfg80211_unhold_bss(bss_from_pub(cr->links[link].bss)); in __cfg80211_connect_result()
861 cfg80211_put_bss(wdev->wiphy, cr->links[link].bss); in __cfg80211_connect_result()
865 wdev->links[link].client.current_bss = in __cfg80211_connect_result()
866 bss_from_pub(cr->links[link].bss); in __cfg80211_connect_result()
871 memcpy(wdev->links[link].addr, cr->links[link].addr, in __cfg80211_connect_result()
880 ieee80211_bss_get_elem(cr->links[link].bss, in __cfg80211_connect_result()
898 cr->links[link].bss->channel->band, in __cfg80211_connect_result()
905 ssid = ieee80211_bss_get_elem(cr->links[link].bss, in __cfg80211_connect_result()
921 cfg80211_put_bss(wdev->wiphy, cr->links[link].bss); in __cfg80211_connect_result()
980 cfg80211_update_link_bss(wdev, &params->links[link].bss); in cfg80211_connect_done()
981 link_info_size += params->links[link].bssid ? ETH_ALEN : 0; in cfg80211_connect_done()
982 link_info_size += params->links[link].addr ? ETH_ALEN : 0; in cfg80211_connect_done()
994 params->links[link].bss); in cfg80211_connect_done()
1045 if (params->links[link].bss) in cfg80211_connect_done()
1047 bss_from_pub(params->links[link].bss)); in cfg80211_connect_done()
1048 ev->cr.links[link].bss = params->links[link].bss; in cfg80211_connect_done()
1049 ev->cr.links[link].status = params->links[link].status; in cfg80211_connect_done()
1051 if (params->links[link].addr) { in cfg80211_connect_done()
1052 ev->cr.links[link].addr = next; in cfg80211_connect_done()
1053 memcpy((void *)ev->cr.links[link].addr, in cfg80211_connect_done()
1054 params->links[link].addr, in cfg80211_connect_done()
1058 if (params->links[link].bssid) { in cfg80211_connect_done()
1059 ev->cr.links[link].bssid = next; in cfg80211_connect_done()
1060 memcpy((void *)ev->cr.links[link].bssid, in cfg80211_connect_done()
1061 params->links[link].bssid, in cfg80211_connect_done()
1100 if (WARN_ON(!info->links[link].addr)) in __cfg80211_roamed()
1108 if (WARN_ON(!info->links[link].bss)) in __cfg80211_roamed()
1112 memset(wdev->links, 0, sizeof(wdev->links)); in __cfg80211_roamed()
1115 cfg80211_hold_bss(bss_from_pub(info->links[link].bss)); in __cfg80211_roamed()
1116 wdev->links[link].client.current_bss = in __cfg80211_roamed()
1117 bss_from_pub(info->links[link].bss); in __cfg80211_roamed()
1122 info->links[0].bss->bssid; in __cfg80211_roamed()
1126 memcpy(wdev->links[link].addr, info->links[link].addr, in __cfg80211_roamed()
1161 cfg80211_put_bss(wdev->wiphy, info->links[link].bss); in __cfg80211_roamed()
1164 /* Consumes info->links.bss object(s) one way or another */
1178 link_info_size += info->links[link].addr ? ETH_ALEN : 0; in cfg80211_roamed()
1179 link_info_size += info->links[link].bssid ? ETH_ALEN : 0; in cfg80211_roamed()
1181 if (info->links[link].bss) in cfg80211_roamed()
1184 info->links[link].bss = in cfg80211_roamed()
1186 info->links[link].channel, in cfg80211_roamed()
1187 info->links[link].bssid, in cfg80211_roamed()
1193 if (!info->links[link].bss) { in cfg80211_roamed()
1255 ev->rm.links[link].bss = info->links[link].bss; in cfg80211_roamed()
1257 if (info->links[link].addr) { in cfg80211_roamed()
1258 ev->rm.links[link].addr = next; in cfg80211_roamed()
1259 memcpy((void *)ev->rm.links[link].addr, in cfg80211_roamed()
1260 info->links[link].addr, in cfg80211_roamed()
1265 if (info->links[link].bssid) { in cfg80211_roamed()
1266 ev->rm.links[link].bssid = next; in cfg80211_roamed()
1267 memcpy((void *)ev->rm.links[link].bssid, in cfg80211_roamed()
1268 info->links[link].bssid, in cfg80211_roamed()
1282 cfg80211_put_bss(wdev->wiphy, info->links[link].bss); in cfg80211_roamed()