Searched refs:fast_tx (Results 1 - 2 of 2) sorted by relevance

/linux-4.4.14/net/mac80211/
H A Dtx.c2405 * checks that are needed to get the sta->fast_tx pointer assigned, after which
2407 * disabled or the fast_tx pointer will not be set. All the conditions are seen
2410 * Once assigned, the fast_tx data structure also caches the per-packet 802.11
2423 struct ieee80211_fast_tx build = {}, *fast_tx = NULL, *old; ieee80211_check_fast_xmit() local
2636 fast_tx = kmemdup(&build, sizeof(build), GFP_ATOMIC); ieee80211_check_fast_xmit()
2637 /* if the kmemdup fails, continue w/o fast_tx */ ieee80211_check_fast_xmit()
2638 if (!fast_tx) ieee80211_check_fast_xmit()
2643 old = rcu_dereference_protected(sta->fast_tx, ieee80211_check_fast_xmit()
2645 rcu_assign_pointer(sta->fast_tx, fast_tx); ieee80211_check_fast_xmit()
2680 struct ieee80211_fast_tx *fast_tx; ieee80211_clear_fast_xmit() local
2683 fast_tx = rcu_dereference_protected(sta->fast_tx, ieee80211_clear_fast_xmit()
2685 RCU_INIT_POINTER(sta->fast_tx, NULL); ieee80211_clear_fast_xmit()
2688 if (fast_tx) ieee80211_clear_fast_xmit()
2689 kfree_rcu(fast_tx, rcu_head); ieee80211_clear_fast_xmit()
2694 struct ieee80211_fast_tx *fast_tx, ieee80211_xmit_fast()
2699 int extra_head = fast_tx->hdr_len - (ETH_HLEN - 2); ieee80211_xmit_fast()
2703 struct ieee80211_hdr *hdr = (void *)fast_tx->hdr; ieee80211_xmit_fast()
2760 memcpy(skb->data, fast_tx->hdr, fast_tx->hdr_len); ieee80211_xmit_fast()
2761 memcpy(skb->data + fast_tx->da_offs, eth.h_dest, ETH_ALEN); ieee80211_xmit_fast()
2762 memcpy(skb->data + fast_tx->sa_offs, eth.h_source, ETH_ALEN); ieee80211_xmit_fast()
2765 info->band = fast_tx->band; ieee80211_xmit_fast()
2795 tx.key = fast_tx->key; ieee80211_xmit_fast()
2797 if (fast_tx->key) ieee80211_xmit_fast()
2798 info->control.hw_key = &fast_tx->key->conf; ieee80211_xmit_fast()
2819 if (fast_tx->pn_offs) { ieee80211_xmit_fast()
2821 u8 *crypto_hdr = skb->data + fast_tx->pn_offs; ieee80211_xmit_fast()
2823 switch (fast_tx->key->conf.cipher) { ieee80211_xmit_fast()
2828 pn = atomic64_inc_return(&fast_tx->key->conf.tx_pn); ieee80211_xmit_fast()
2867 struct ieee80211_fast_tx *fast_tx; __ieee80211_subif_start_xmit() local
2869 fast_tx = rcu_dereference(sta->fast_tx); __ieee80211_subif_start_xmit()
2871 if (fast_tx && __ieee80211_subif_start_xmit()
2872 ieee80211_xmit_fast(sdata, dev, sta, fast_tx, skb)) __ieee80211_subif_start_xmit()
2692 ieee80211_xmit_fast(struct ieee80211_sub_if_data *sdata, struct net_device *dev, struct sta_info *sta, struct ieee80211_fast_tx *fast_tx, struct sk_buff *skb) ieee80211_xmit_fast() argument
H A Dsta_info.h381 * @fast_tx: TX fastpath information
404 struct ieee80211_fast_tx __rcu *fast_tx; member in struct:sta_info

Completed in 121 milliseconds