Bläddra i källkod

qcacmn: update TID to skb priority

update TID to skb priority before checking process_rx_status.

Change-Id: Ic81666e3cf918f6d089c43ae8234cd7a06fd0ccc
nobelj 6 år sedan
förälder
incheckning
9d8154dcd3
1 ändrade filer med 8 tillägg och 3 borttagningar
  1. 8 3
      dp/wifi3.0/dp_rx.c

+ 8 - 3
dp/wifi3.0/dp_rx.c

@@ -1210,9 +1210,6 @@ static void dp_rx_msdu_stats_update(struct dp_soc *soc,
 	nss = hal_rx_msdu_start_nss_get(soc->hal_soc, rx_tlv_hdr);
 	pkt_type = hal_rx_msdu_start_get_pkt_type(rx_tlv_hdr);
 
-	/* Save tid to skb->priority */
-	DP_RX_TID_SAVE(nbuf, tid);
-
 	DP_STATS_INC(peer, rx.bw[bw], 1);
 	DP_STATS_INC(peer, rx.nss[nss], 1);
 	DP_STATS_INC(peer, rx.sgi_count[sgi], 1);
@@ -1398,6 +1395,7 @@ uint32_t dp_rx_process(struct dp_intr *int_ctx, void *hal_ring,
 	qdf_nbuf_t nbuf_tail = NULL;
 	qdf_nbuf_t deliver_list_head = NULL;
 	qdf_nbuf_t deliver_list_tail = NULL;
+	int32_t tid = 0;
 
 	DP_HIST_INIT();
 	/* Debug -- Remove later */
@@ -1787,6 +1785,13 @@ done:
 
 		dp_rx_fill_gro_info(soc, rx_tlv_hdr, nbuf);
 		qdf_nbuf_cb_update_peer_local_id(nbuf, peer->local_id);
+
+		/* Get TID from first msdu per MPDU, save to skb->priority */
+		if (qdf_nbuf_is_rx_chfrag_start(nbuf))
+			tid = hal_rx_mpdu_start_tid_get(soc->hal_soc,
+							rx_tlv_hdr);
+		DP_RX_TID_SAVE(nbuf, tid);
+
 		DP_RX_LIST_APPEND(deliver_list_head,
 				  deliver_list_tail,
 				  nbuf);