ath11k: move function ath11k_dp_rx_process_mon_status
authorAloka Dixit <quic_alokad@quicinc.com>
Wed, 12 Jan 2022 08:15:10 +0000 (10:15 +0200)
committerKalle Valo <quic_kvalo@quicinc.com>
Mon, 17 Jan 2022 12:36:55 +0000 (14:36 +0200)
Move the function below ath11k_dp_rx_mon_dest_process() and remove
the forward declaration.

Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.5.0.1-01179-QCAHKSWPL_SILICONZ-1
Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20220111032224.14093-2-quic_alokad@quicinc.com
drivers/net/wireless/ath/ath11k/dp_rx.c

index 259e970..89b77b9 100644 (file)
@@ -20,9 +20,6 @@
 
 #define ATH11K_DP_RX_FRAGMENT_TIMEOUT_MS (2 * HZ)
 
-static void ath11k_dp_rx_mon_dest_process(struct ath11k *ar, int mac_id,
-                                         u32 quota, struct napi_struct *napi);
-
 static inline
 u8 *ath11k_dp_rx_h_80211_hdr(struct ath11k_base *ab, struct hal_rx_desc *desc)
 {
@@ -3093,90 +3090,6 @@ move_next:
        return num_buffs_reaped;
 }
 
-int ath11k_dp_rx_process_mon_status(struct ath11k_base *ab, int mac_id,
-                                   struct napi_struct *napi, int budget)
-{
-       struct ath11k *ar = ath11k_ab_to_ar(ab, mac_id);
-       enum hal_rx_mon_status hal_status;
-       struct sk_buff *skb;
-       struct sk_buff_head skb_list;
-       struct ath11k_peer *peer;
-       struct ath11k_sta *arsta;
-       int num_buffs_reaped = 0;
-       u32 rx_buf_sz;
-       u16 log_type = 0;
-       struct ath11k_mon_data *pmon = (struct ath11k_mon_data *)&ar->dp.mon_data;
-       struct ath11k_pdev_mon_stats *rx_mon_stats = &pmon->rx_mon_stats;
-       struct hal_rx_mon_ppdu_info *ppdu_info = &pmon->mon_ppdu_info;
-
-       __skb_queue_head_init(&skb_list);
-
-       num_buffs_reaped = ath11k_dp_rx_reap_mon_status_ring(ab, mac_id, &budget,
-                                                            &skb_list);
-       if (!num_buffs_reaped)
-               goto exit;
-
-       memset(ppdu_info, 0, sizeof(*ppdu_info));
-       ppdu_info->peer_id = HAL_INVALID_PEERID;
-
-       while ((skb = __skb_dequeue(&skb_list))) {
-               if (ath11k_debugfs_is_pktlog_lite_mode_enabled(ar)) {
-                       log_type = ATH11K_PKTLOG_TYPE_LITE_RX;
-                       rx_buf_sz = DP_RX_BUFFER_SIZE_LITE;
-               } else if (ath11k_debugfs_is_pktlog_rx_stats_enabled(ar)) {
-                       log_type = ATH11K_PKTLOG_TYPE_RX_STATBUF;
-                       rx_buf_sz = DP_RX_BUFFER_SIZE;
-               }
-
-               if (log_type)
-                       trace_ath11k_htt_rxdesc(ar, skb->data, log_type, rx_buf_sz);
-
-               hal_status = ath11k_hal_rx_parse_mon_status(ab, ppdu_info, skb);
-
-               if (test_bit(ATH11K_FLAG_MONITOR_STARTED, &ar->monitor_flags) &&
-                   pmon->mon_ppdu_status == DP_PPDU_STATUS_START &&
-                   hal_status == HAL_TLV_STATUS_PPDU_DONE) {
-                       rx_mon_stats->status_ppdu_done++;
-                       pmon->mon_ppdu_status = DP_PPDU_STATUS_DONE;
-                       ath11k_dp_rx_mon_dest_process(ar, mac_id, budget, napi);
-                       pmon->mon_ppdu_status = DP_PPDU_STATUS_START;
-               }
-
-               if (ppdu_info->peer_id == HAL_INVALID_PEERID ||
-                   hal_status != HAL_RX_MON_STATUS_PPDU_DONE) {
-                       dev_kfree_skb_any(skb);
-                       continue;
-               }
-
-               rcu_read_lock();
-               spin_lock_bh(&ab->base_lock);
-               peer = ath11k_peer_find_by_id(ab, ppdu_info->peer_id);
-
-               if (!peer || !peer->sta) {
-                       ath11k_dbg(ab, ATH11K_DBG_DATA,
-                                  "failed to find the peer with peer_id %d\n",
-                                  ppdu_info->peer_id);
-                       goto next_skb;
-               }
-
-               arsta = (struct ath11k_sta *)peer->sta->drv_priv;
-               ath11k_dp_rx_update_peer_stats(arsta, ppdu_info);
-
-               if (ath11k_debugfs_is_pktlog_peer_valid(ar, peer->addr))
-                       trace_ath11k_htt_rxdesc(ar, skb->data, log_type, rx_buf_sz);
-
-next_skb:
-               spin_unlock_bh(&ab->base_lock);
-               rcu_read_unlock();
-
-               dev_kfree_skb_any(skb);
-               memset(ppdu_info, 0, sizeof(*ppdu_info));
-               ppdu_info->peer_id = HAL_INVALID_PEERID;
-       }
-exit:
-       return num_buffs_reaped;
-}
-
 static void ath11k_dp_rx_frag_timer(struct timer_list *timer)
 {
        struct dp_rx_tid *rx_tid = from_timer(rx_tid, timer, frag_timer);
@@ -5130,6 +5043,90 @@ static void ath11k_dp_rx_mon_dest_process(struct ath11k *ar, int mac_id,
        }
 }
 
+int ath11k_dp_rx_process_mon_status(struct ath11k_base *ab, int mac_id,
+                                   struct napi_struct *napi, int budget)
+{
+       struct ath11k *ar = ath11k_ab_to_ar(ab, mac_id);
+       enum hal_rx_mon_status hal_status;
+       struct sk_buff *skb;
+       struct sk_buff_head skb_list;
+       struct ath11k_peer *peer;
+       struct ath11k_sta *arsta;
+       int num_buffs_reaped = 0;
+       u32 rx_buf_sz;
+       u16 log_type = 0;
+       struct ath11k_mon_data *pmon = (struct ath11k_mon_data *)&ar->dp.mon_data;
+       struct ath11k_pdev_mon_stats *rx_mon_stats = &pmon->rx_mon_stats;
+       struct hal_rx_mon_ppdu_info *ppdu_info = &pmon->mon_ppdu_info;
+
+       __skb_queue_head_init(&skb_list);
+
+       num_buffs_reaped = ath11k_dp_rx_reap_mon_status_ring(ab, mac_id, &budget,
+                                                            &skb_list);
+       if (!num_buffs_reaped)
+               goto exit;
+
+       memset(ppdu_info, 0, sizeof(*ppdu_info));
+       ppdu_info->peer_id = HAL_INVALID_PEERID;
+
+       while ((skb = __skb_dequeue(&skb_list))) {
+               if (ath11k_debugfs_is_pktlog_lite_mode_enabled(ar)) {
+                       log_type = ATH11K_PKTLOG_TYPE_LITE_RX;
+                       rx_buf_sz = DP_RX_BUFFER_SIZE_LITE;
+               } else if (ath11k_debugfs_is_pktlog_rx_stats_enabled(ar)) {
+                       log_type = ATH11K_PKTLOG_TYPE_RX_STATBUF;
+                       rx_buf_sz = DP_RX_BUFFER_SIZE;
+               }
+
+               if (log_type)
+                       trace_ath11k_htt_rxdesc(ar, skb->data, log_type, rx_buf_sz);
+
+               hal_status = ath11k_hal_rx_parse_mon_status(ab, ppdu_info, skb);
+
+               if (test_bit(ATH11K_FLAG_MONITOR_STARTED, &ar->monitor_flags) &&
+                   pmon->mon_ppdu_status == DP_PPDU_STATUS_START &&
+                   hal_status == HAL_TLV_STATUS_PPDU_DONE) {
+                       rx_mon_stats->status_ppdu_done++;
+                       pmon->mon_ppdu_status = DP_PPDU_STATUS_DONE;
+                       ath11k_dp_rx_mon_dest_process(ar, mac_id, budget, napi);
+                       pmon->mon_ppdu_status = DP_PPDU_STATUS_START;
+               }
+
+               if (ppdu_info->peer_id == HAL_INVALID_PEERID ||
+                   hal_status != HAL_RX_MON_STATUS_PPDU_DONE) {
+                       dev_kfree_skb_any(skb);
+                       continue;
+               }
+
+               rcu_read_lock();
+               spin_lock_bh(&ab->base_lock);
+               peer = ath11k_peer_find_by_id(ab, ppdu_info->peer_id);
+
+               if (!peer || !peer->sta) {
+                       ath11k_dbg(ab, ATH11K_DBG_DATA,
+                                  "failed to find the peer with peer_id %d\n",
+                                  ppdu_info->peer_id);
+                       goto next_skb;
+               }
+
+               arsta = (struct ath11k_sta *)peer->sta->drv_priv;
+               ath11k_dp_rx_update_peer_stats(arsta, ppdu_info);
+
+               if (ath11k_debugfs_is_pktlog_peer_valid(ar, peer->addr))
+                       trace_ath11k_htt_rxdesc(ar, skb->data, log_type, rx_buf_sz);
+
+next_skb:
+               spin_unlock_bh(&ab->base_lock);
+               rcu_read_unlock();
+
+               dev_kfree_skb_any(skb);
+               memset(ppdu_info, 0, sizeof(*ppdu_info));
+               ppdu_info->peer_id = HAL_INVALID_PEERID;
+       }
+exit:
+       return num_buffs_reaped;
+}
+
 static u32
 ath11k_dp_rx_full_mon_mpdu_pop(struct ath11k *ar,
                               void *ring_entry, struct sk_buff **head_msdu,