Просмотр исходного кода

qcacmn: Fix dptrace dump for TX path

When running dptrace dump on Napier, observed that eapol TX counters
are not incremented. Reason is that in Lithium DP nbuf->cb is reset
before dp_tx_trace_pkt() is invoked while dptrace relies on nbuf->cb.

Fix is to move qdf_nbuf_reset_ctxt() after dp_tx_trace_pkt() so that
TX counters that rely on nbuf->cb can be captured.

Change-Id: I5048113e66e8742b8f1f321c07494a6dcf84256a
CRs-Fixed: 2290500
jiad 6 лет назад
Родитель
Сommit
f9cb8344c4
1 измененных файлов с 6 добавлено и 6 удалено
  1. 6 6
      dp/wifi3.0/dp_tx.c

+ 6 - 6
dp/wifi3.0/dp_tx.c

@@ -628,6 +628,9 @@ struct dp_tx_desc_s *dp_tx_prepare_desc_single(struct dp_vdev *vdev,
 
 	dp_tx_trace_pkt(nbuf, tx_desc->id, vdev->vdev_id);
 
+	/* Reset the control block */
+	qdf_nbuf_reset_ctxt(nbuf);
+
 	/*
 	 * For special modes (vdev_type == ocb or mesh), data frames should be
 	 * transmitted using varying transmit parameters (tx spec) which include
@@ -756,6 +759,9 @@ static struct dp_tx_desc_s *dp_tx_prepare_desc(struct dp_vdev *vdev,
 
 	dp_tx_trace_pkt(nbuf, tx_desc->id, vdev->vdev_id);
 
+	/* Reset the control block */
+	qdf_nbuf_reset_ctxt(nbuf);
+
 	/* Handle scattered frames - TSO/SG/ME */
 	/* Allocate and prepare an extension descriptor for scattered frames */
 	msdu_ext_desc = dp_tx_prepare_ext_desc(vdev, msdu_info, desc_pool_id);
@@ -1847,9 +1853,6 @@ qdf_nbuf_t dp_tx_send_exception(void *vap_dev, qdf_nbuf_t nbuf,
 	 */
 	dp_tx_get_queue(vdev, nbuf, &msdu_info.tx_queue);
 
-	/* Reset the control block */
-	qdf_nbuf_reset_ctxt(nbuf);
-
 	/*  Single linear frame */
 	/*
 	 * If nbuf is a simple linear frame, use send_single function to
@@ -2012,9 +2015,6 @@ qdf_nbuf_t dp_tx_send(void *vap_dev, qdf_nbuf_t nbuf)
 	 */
 	dp_tx_classify_tid(vdev, nbuf, &msdu_info);
 
-	/* Reset the control block */
-	qdf_nbuf_reset_ctxt(nbuf);
-
 	/*
 	 * Classify the frame and call corresponding
 	 * "prepare" function which extracts the segment (TSO)