diff --git a/dp/wifi3.0/dp_rx.c b/dp/wifi3.0/dp_rx.c index 6075055318..832db113dd 100644 --- a/dp/wifi3.0/dp_rx.c +++ b/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);