Lines Matching refs:local

27 	struct ieee80211_local *local = hw_to_local(hw);  in ieee80211_tx_status_irqsafe()  local
33 &local->skb_queue : &local->skb_queue_unreliable, skb); in ieee80211_tx_status_irqsafe()
34 tmp = skb_queue_len(&local->skb_queue) + in ieee80211_tx_status_irqsafe()
35 skb_queue_len(&local->skb_queue_unreliable); in ieee80211_tx_status_irqsafe()
37 (skb = skb_dequeue(&local->skb_queue_unreliable))) { in ieee80211_tx_status_irqsafe()
40 I802_DEBUG_INC(local->tx_status_drop); in ieee80211_tx_status_irqsafe()
42 tasklet_schedule(&local->tasklet); in ieee80211_tx_status_irqsafe()
46 static void ieee80211_handle_filtered_frame(struct ieee80211_local *local, in ieee80211_handle_filtered_frame() argument
145 if (!timer_pending(&local->sta_cleanup)) in ieee80211_handle_filtered_frame()
146 mod_timer(&local->sta_cleanup, in ieee80211_handle_filtered_frame()
156 ieee80211_add_pending_skb(local, skb); in ieee80211_handle_filtered_frame()
164 ieee80211_free_txskb(&local->hw, skb); in ieee80211_handle_filtered_frame()
182 struct ieee80211_local *local = sta->local; in ieee80211_frame_acked() local
185 if (ieee80211_hw_check(&local->hw, REPORTS_TX_ACK_STATUS)) in ieee80211_frame_acked()
224 ieee80211_queue_work(&local->hw, &sdata->recalc_smps); in ieee80211_frame_acked()
273 ieee80211_add_tx_radiotap_header(struct ieee80211_local *local, in ieee80211_add_tx_radiotap_header() argument
350 u16 known = local->hw.radiotap_vht_details & in ieee80211_add_tx_radiotap_header()
397 static void ieee80211_tdls_td_tx_handle(struct ieee80211_local *local, in ieee80211_tdls_td_tx_handle() argument
418 WARN_ON(!ieee80211_hw_check(&local->hw, REPORTS_TX_ACK_STATUS)); in ieee80211_tdls_td_tx_handle()
433 ieee80211_sdata_from_skb(struct ieee80211_local *local, struct sk_buff *skb) in ieee80211_sdata_from_skb() argument
438 list_for_each_entry_rcu(sdata, &local->interfaces, list) { in ieee80211_sdata_from_skb()
449 return rcu_dereference(local->p2p_sdata); in ieee80211_sdata_from_skb()
452 static void ieee80211_report_ack_skb(struct ieee80211_local *local, in ieee80211_report_ack_skb() argument
459 spin_lock_irqsave(&local->ack_status_lock, flags); in ieee80211_report_ack_skb()
460 skb = idr_find(&local->ack_status_frames, info->ack_frame_id); in ieee80211_report_ack_skb()
462 idr_remove(&local->ack_status_frames, info->ack_frame_id); in ieee80211_report_ack_skb()
463 spin_unlock_irqrestore(&local->ack_status_lock, flags); in ieee80211_report_ack_skb()
479 sdata = ieee80211_sdata_from_skb(local, skb); in ieee80211_report_ack_skb()
500 static void ieee80211_report_used_skb(struct ieee80211_local *local, in ieee80211_report_used_skb() argument
515 sdata = ieee80211_sdata_from_skb(local, skb); in ieee80211_report_used_skb()
527 ieee80211_tdls_td_tx_handle(local, sdata, skb, in ieee80211_report_used_skb()
537 ieee80211_report_ack_skb(local, info, acked, dropped); in ieee80211_report_used_skb()
622 struct ieee80211_local *local = hw_to_local(hw); in ieee80211_tx_status_noskb() local
657 rate_control_tx_status_noskb(local, sband, sta, info); in ieee80211_tx_status_noskb()
661 I802_DEBUG_INC(local->dot11TransmittedFrameCount); in ieee80211_tx_status_noskb()
663 I802_DEBUG_INC(local->dot11MulticastTransmittedFrameCount); in ieee80211_tx_status_noskb()
665 I802_DEBUG_INC(local->dot11RetryCount); in ieee80211_tx_status_noskb()
667 I802_DEBUG_INC(local->dot11MultipleRetryCount); in ieee80211_tx_status_noskb()
669 I802_DEBUG_INC(local->dot11FailedCount); in ieee80211_tx_status_noskb()
674 void ieee80211_tx_monitor(struct ieee80211_local *local, struct sk_buff *skb, in ieee80211_tx_monitor() argument
691 ieee80211_add_tx_radiotap_header(local, sband, skb, retry_count, in ieee80211_tx_monitor()
702 list_for_each_entry_rcu(sdata, &local->interfaces, list) { in ieee80211_tx_monitor()
734 struct ieee80211_local *local = hw_to_local(hw); in ieee80211_tx_status() local
753 sband = local->hw.wiphy->bands[info->band]; in ieee80211_tx_status()
756 tbl = rht_dereference_rcu(local->sta_hash.tbl, &local->sta_hash); in ieee80211_tx_status()
758 for_each_sta_info(local, tbl, hdr->addr1, sta, tmp) { in ieee80211_tx_status()
774 ieee80211_handle_filtered_frame(local, sta, skb); in ieee80211_tx_status()
786 if (ieee80211_hw_check(&local->hw, HAS_RATE_CONTROL) && in ieee80211_tx_status()
831 ieee80211_handle_filtered_frame(local, sta, skb); in ieee80211_tx_status()
848 rate_control_tx_status(local, sband, sta, skb); in ieee80211_tx_status()
850 ieee80211s_update_metric(local, sta, skb); in ieee80211_tx_status()
856 ieee80211_hw_check(&local->hw, REPORTS_TX_ACK_STATUS)) in ieee80211_tx_status()
860 if (ieee80211_hw_check(&local->hw, REPORTS_TX_ACK_STATUS)) { in ieee80211_tx_status()
877 ieee80211_led_tx(local); in ieee80211_tx_status()
886 I802_DEBUG_INC(local->dot11TransmittedFrameCount); in ieee80211_tx_status()
888 I802_DEBUG_INC(local->dot11MulticastTransmittedFrameCount); in ieee80211_tx_status()
890 I802_DEBUG_INC(local->dot11RetryCount); in ieee80211_tx_status()
892 I802_DEBUG_INC(local->dot11MultipleRetryCount); in ieee80211_tx_status()
902 I802_DEBUG_INC(local->dot11TransmittedFragmentCount); in ieee80211_tx_status()
905 I802_DEBUG_INC(local->dot11FailedCount); in ieee80211_tx_status()
909 ieee80211_hw_check(&local->hw, REPORTS_TX_ACK_STATUS) && in ieee80211_tx_status()
911 local->ps_sdata && !(local->scanning)) { in ieee80211_tx_status()
913 local->ps_sdata->u.mgd.flags |= in ieee80211_tx_status()
916 mod_timer(&local->dynamic_ps_timer, jiffies + in ieee80211_tx_status()
920 ieee80211_report_used_skb(local, skb, false); in ieee80211_tx_status()
933 if (!local->monitors && (!send_to_cooked || !local->cooked_mntrs)) { in ieee80211_tx_status()
939 ieee80211_tx_monitor(local, skb, sband, retry_count, shift, send_to_cooked); in ieee80211_tx_status()
953 struct ieee80211_local *local = hw_to_local(hw); in ieee80211_free_txskb() local
955 ieee80211_report_used_skb(local, skb, true); in ieee80211_free_txskb()