Lines Matching refs:beacon
4596 struct beacon_data *beacon) in ieee80211_set_beacon_cntdwn() argument
4602 u8 count = beacon->cntdwn_current_counter; in ieee80211_set_beacon_cntdwn()
4606 beacon_data = beacon->tail; in ieee80211_set_beacon_cntdwn()
4607 beacon_data_len = beacon->tail_len; in ieee80211_set_beacon_cntdwn()
4610 beacon_data = beacon->head; in ieee80211_set_beacon_cntdwn()
4611 beacon_data_len = beacon->head_len; in ieee80211_set_beacon_cntdwn()
4614 beacon_data = beacon->head; in ieee80211_set_beacon_cntdwn()
4615 beacon_data_len = beacon->head_len; in ieee80211_set_beacon_cntdwn()
4625 if (beacon->cntdwn_counter_offsets[i]) { in ieee80211_set_beacon_cntdwn()
4626 if (WARN_ON_ONCE(beacon->cntdwn_counter_offsets[i] >= in ieee80211_set_beacon_cntdwn()
4632 beacon_data[beacon->cntdwn_counter_offsets[i]] = count; in ieee80211_set_beacon_cntdwn()
4641 static u8 __ieee80211_beacon_update_cntdwn(struct beacon_data *beacon) in __ieee80211_beacon_update_cntdwn() argument
4643 beacon->cntdwn_current_counter--; in __ieee80211_beacon_update_cntdwn()
4646 WARN_ON_ONCE(!beacon->cntdwn_current_counter); in __ieee80211_beacon_update_cntdwn()
4648 return beacon->cntdwn_current_counter; in __ieee80211_beacon_update_cntdwn()
4654 struct beacon_data *beacon = NULL; in ieee80211_beacon_update_cntdwn() local
4660 beacon = rcu_dereference(sdata->u.ap.beacon); in ieee80211_beacon_update_cntdwn()
4662 beacon = rcu_dereference(sdata->u.ibss.presp); in ieee80211_beacon_update_cntdwn()
4664 beacon = rcu_dereference(sdata->u.mesh.beacon); in ieee80211_beacon_update_cntdwn()
4666 if (!beacon) in ieee80211_beacon_update_cntdwn()
4669 count = __ieee80211_beacon_update_cntdwn(beacon); in ieee80211_beacon_update_cntdwn()
4680 struct beacon_data *beacon = NULL; in ieee80211_beacon_set_cntdwn() local
4685 beacon = rcu_dereference(sdata->u.ap.beacon); in ieee80211_beacon_set_cntdwn()
4687 beacon = rcu_dereference(sdata->u.ibss.presp); in ieee80211_beacon_set_cntdwn()
4689 beacon = rcu_dereference(sdata->u.mesh.beacon); in ieee80211_beacon_set_cntdwn()
4691 if (!beacon) in ieee80211_beacon_set_cntdwn()
4694 if (counter < beacon->cntdwn_current_counter) in ieee80211_beacon_set_cntdwn()
4695 beacon->cntdwn_current_counter = counter; in ieee80211_beacon_set_cntdwn()
4705 struct beacon_data *beacon = NULL; in ieee80211_beacon_cntdwn_is_complete() local
4717 beacon = rcu_dereference(ap->beacon); in ieee80211_beacon_cntdwn_is_complete()
4718 if (WARN_ON(!beacon || !beacon->tail)) in ieee80211_beacon_cntdwn_is_complete()
4720 beacon_data = beacon->tail; in ieee80211_beacon_cntdwn_is_complete()
4721 beacon_data_len = beacon->tail_len; in ieee80211_beacon_cntdwn_is_complete()
4725 beacon = rcu_dereference(ifibss->presp); in ieee80211_beacon_cntdwn_is_complete()
4726 if (!beacon) in ieee80211_beacon_cntdwn_is_complete()
4729 beacon_data = beacon->head; in ieee80211_beacon_cntdwn_is_complete()
4730 beacon_data_len = beacon->head_len; in ieee80211_beacon_cntdwn_is_complete()
4734 beacon = rcu_dereference(ifmsh->beacon); in ieee80211_beacon_cntdwn_is_complete()
4735 if (!beacon) in ieee80211_beacon_cntdwn_is_complete()
4738 beacon_data = beacon->head; in ieee80211_beacon_cntdwn_is_complete()
4739 beacon_data_len = beacon->head_len; in ieee80211_beacon_cntdwn_is_complete()
4745 if (!beacon->cntdwn_counter_offsets[0]) in ieee80211_beacon_cntdwn_is_complete()
4748 if (WARN_ON_ONCE(beacon->cntdwn_counter_offsets[0] > beacon_data_len)) in ieee80211_beacon_cntdwn_is_complete()
4751 if (beacon_data[beacon->cntdwn_counter_offsets[0]] == 1) in ieee80211_beacon_cntdwn_is_complete()
4794 struct beacon_data *beacon = NULL; in __ieee80211_beacon_get() local
4817 beacon = rcu_dereference(ap->beacon); in __ieee80211_beacon_get()
4818 if (beacon) { in __ieee80211_beacon_get()
4819 if (beacon->cntdwn_counter_offsets[0]) { in __ieee80211_beacon_get()
4823 ieee80211_set_beacon_cntdwn(sdata, beacon); in __ieee80211_beacon_get()
4831 beacon->head_len + in __ieee80211_beacon_get()
4832 beacon->tail_len + 256 + in __ieee80211_beacon_get()
4838 skb_put_data(skb, beacon->head, beacon->head_len); in __ieee80211_beacon_get()
4844 offs->tim_offset = beacon->head_len; in __ieee80211_beacon_get()
4845 offs->tim_length = skb->len - beacon->head_len; in __ieee80211_beacon_get()
4851 if (beacon->tail) in __ieee80211_beacon_get()
4852 skb_put_data(skb, beacon->tail, in __ieee80211_beacon_get()
4853 beacon->tail_len); in __ieee80211_beacon_get()
4863 beacon = rcu_dereference(ifibss->presp); in __ieee80211_beacon_get()
4864 if (!beacon) in __ieee80211_beacon_get()
4867 if (beacon->cntdwn_counter_offsets[0]) { in __ieee80211_beacon_get()
4869 __ieee80211_beacon_update_cntdwn(beacon); in __ieee80211_beacon_get()
4871 ieee80211_set_beacon_cntdwn(sdata, beacon); in __ieee80211_beacon_get()
4874 skb = dev_alloc_skb(local->tx_headroom + beacon->head_len + in __ieee80211_beacon_get()
4879 skb_put_data(skb, beacon->head, beacon->head_len); in __ieee80211_beacon_get()
4887 beacon = rcu_dereference(ifmsh->beacon); in __ieee80211_beacon_get()
4888 if (!beacon) in __ieee80211_beacon_get()
4891 if (beacon->cntdwn_counter_offsets[0]) { in __ieee80211_beacon_get()
4898 __ieee80211_beacon_update_cntdwn(beacon); in __ieee80211_beacon_get()
4900 ieee80211_set_beacon_cntdwn(sdata, beacon); in __ieee80211_beacon_get()
4904 ifmsh->sync_ops->adjust_tsf(sdata, beacon); in __ieee80211_beacon_get()
4907 beacon->head_len + in __ieee80211_beacon_get()
4909 beacon->tail_len + in __ieee80211_beacon_get()
4914 skb_put_data(skb, beacon->head, beacon->head_len); in __ieee80211_beacon_get()
4918 offs->tim_offset = beacon->head_len; in __ieee80211_beacon_get()
4919 offs->tim_length = skb->len - beacon->head_len; in __ieee80211_beacon_get()
4922 skb_put_data(skb, beacon->tail, beacon->tail_len); in __ieee80211_beacon_get()
4929 if (offs && beacon) { in __ieee80211_beacon_get()
4933 u16 csa_off = beacon->cntdwn_counter_offsets[i]; in __ieee80211_beacon_get()
5300 struct beacon_data *beacon = in ieee80211_get_buffered_bc() local
5301 rcu_dereference(sdata->u.ap.beacon); in ieee80211_get_buffered_bc()
5303 if (!beacon || !beacon->head) in ieee80211_get_buffered_bc()