Lines Matching refs:beacon
4266 struct beacon_data *beacon) in ieee80211_set_csa() argument
4272 u8 count = beacon->csa_current_counter; in ieee80211_set_csa()
4276 beacon_data = beacon->tail; in ieee80211_set_csa()
4277 beacon_data_len = beacon->tail_len; in ieee80211_set_csa()
4280 beacon_data = beacon->head; in ieee80211_set_csa()
4281 beacon_data_len = beacon->head_len; in ieee80211_set_csa()
4284 beacon_data = beacon->head; in ieee80211_set_csa()
4285 beacon_data_len = beacon->head_len; in ieee80211_set_csa()
4295 if (beacon->csa_counter_offsets[i]) { in ieee80211_set_csa()
4296 if (WARN_ON_ONCE(beacon->csa_counter_offsets[i] >= in ieee80211_set_csa()
4302 beacon_data[beacon->csa_counter_offsets[i]] = count; in ieee80211_set_csa()
4311 static u8 __ieee80211_csa_update_counter(struct beacon_data *beacon) in __ieee80211_csa_update_counter() argument
4313 beacon->csa_current_counter--; in __ieee80211_csa_update_counter()
4316 WARN_ON_ONCE(!beacon->csa_current_counter); in __ieee80211_csa_update_counter()
4318 return beacon->csa_current_counter; in __ieee80211_csa_update_counter()
4324 struct beacon_data *beacon = NULL; in ieee80211_csa_update_counter() local
4330 beacon = rcu_dereference(sdata->u.ap.beacon); in ieee80211_csa_update_counter()
4332 beacon = rcu_dereference(sdata->u.ibss.presp); in ieee80211_csa_update_counter()
4334 beacon = rcu_dereference(sdata->u.mesh.beacon); in ieee80211_csa_update_counter()
4336 if (!beacon) in ieee80211_csa_update_counter()
4339 count = __ieee80211_csa_update_counter(beacon); in ieee80211_csa_update_counter()
4350 struct beacon_data *beacon = NULL; in ieee80211_csa_set_counter() local
4355 beacon = rcu_dereference(sdata->u.ap.beacon); in ieee80211_csa_set_counter()
4357 beacon = rcu_dereference(sdata->u.ibss.presp); in ieee80211_csa_set_counter()
4359 beacon = rcu_dereference(sdata->u.mesh.beacon); in ieee80211_csa_set_counter()
4361 if (!beacon) in ieee80211_csa_set_counter()
4364 if (counter < beacon->csa_current_counter) in ieee80211_csa_set_counter()
4365 beacon->csa_current_counter = counter; in ieee80211_csa_set_counter()
4375 struct beacon_data *beacon = NULL; in ieee80211_csa_is_complete() local
4387 beacon = rcu_dereference(ap->beacon); in ieee80211_csa_is_complete()
4388 if (WARN_ON(!beacon || !beacon->tail)) in ieee80211_csa_is_complete()
4390 beacon_data = beacon->tail; in ieee80211_csa_is_complete()
4391 beacon_data_len = beacon->tail_len; in ieee80211_csa_is_complete()
4395 beacon = rcu_dereference(ifibss->presp); in ieee80211_csa_is_complete()
4396 if (!beacon) in ieee80211_csa_is_complete()
4399 beacon_data = beacon->head; in ieee80211_csa_is_complete()
4400 beacon_data_len = beacon->head_len; in ieee80211_csa_is_complete()
4404 beacon = rcu_dereference(ifmsh->beacon); in ieee80211_csa_is_complete()
4405 if (!beacon) in ieee80211_csa_is_complete()
4408 beacon_data = beacon->head; in ieee80211_csa_is_complete()
4409 beacon_data_len = beacon->head_len; in ieee80211_csa_is_complete()
4415 if (!beacon->csa_counter_offsets[0]) in ieee80211_csa_is_complete()
4418 if (WARN_ON_ONCE(beacon->csa_counter_offsets[0] > beacon_data_len)) in ieee80211_csa_is_complete()
4421 if (beacon_data[beacon->csa_counter_offsets[0]] == 1) in ieee80211_csa_is_complete()
4437 struct beacon_data *beacon = NULL; in __ieee80211_beacon_get() local
4460 beacon = rcu_dereference(ap->beacon); in __ieee80211_beacon_get()
4461 if (beacon) { in __ieee80211_beacon_get()
4462 if (beacon->csa_counter_offsets[0]) { in __ieee80211_beacon_get()
4464 __ieee80211_csa_update_counter(beacon); in __ieee80211_beacon_get()
4466 ieee80211_set_csa(sdata, beacon); in __ieee80211_beacon_get()
4474 beacon->head_len + in __ieee80211_beacon_get()
4475 beacon->tail_len + 256 + in __ieee80211_beacon_get()
4481 skb_put_data(skb, beacon->head, beacon->head_len); in __ieee80211_beacon_get()
4487 offs->tim_offset = beacon->head_len; in __ieee80211_beacon_get()
4488 offs->tim_length = skb->len - beacon->head_len; in __ieee80211_beacon_get()
4494 if (beacon->tail) in __ieee80211_beacon_get()
4495 skb_put_data(skb, beacon->tail, in __ieee80211_beacon_get()
4496 beacon->tail_len); in __ieee80211_beacon_get()
4503 beacon = rcu_dereference(ifibss->presp); in __ieee80211_beacon_get()
4504 if (!beacon) in __ieee80211_beacon_get()
4507 if (beacon->csa_counter_offsets[0]) { in __ieee80211_beacon_get()
4509 __ieee80211_csa_update_counter(beacon); in __ieee80211_beacon_get()
4511 ieee80211_set_csa(sdata, beacon); in __ieee80211_beacon_get()
4514 skb = dev_alloc_skb(local->tx_headroom + beacon->head_len + in __ieee80211_beacon_get()
4519 skb_put_data(skb, beacon->head, beacon->head_len); in __ieee80211_beacon_get()
4527 beacon = rcu_dereference(ifmsh->beacon); in __ieee80211_beacon_get()
4528 if (!beacon) in __ieee80211_beacon_get()
4531 if (beacon->csa_counter_offsets[0]) { in __ieee80211_beacon_get()
4538 __ieee80211_csa_update_counter(beacon); in __ieee80211_beacon_get()
4540 ieee80211_set_csa(sdata, beacon); in __ieee80211_beacon_get()
4544 ifmsh->sync_ops->adjust_tsf(sdata, beacon); in __ieee80211_beacon_get()
4547 beacon->head_len + in __ieee80211_beacon_get()
4549 beacon->tail_len + in __ieee80211_beacon_get()
4554 skb_put_data(skb, beacon->head, beacon->head_len); in __ieee80211_beacon_get()
4558 offs->tim_offset = beacon->head_len; in __ieee80211_beacon_get()
4559 offs->tim_length = skb->len - beacon->head_len; in __ieee80211_beacon_get()
4562 skb_put_data(skb, beacon->tail, beacon->tail_len); in __ieee80211_beacon_get()
4569 if (offs && beacon) { in __ieee80211_beacon_get()
4573 u16 csa_off = beacon->csa_counter_offsets[i]; in __ieee80211_beacon_get()
4880 struct beacon_data *beacon = in ieee80211_get_buffered_bc() local
4881 rcu_dereference(sdata->u.ap.beacon); in ieee80211_get_buffered_bc()
4883 if (!beacon || !beacon->head) in ieee80211_get_buffered_bc()