Browse Source

qcacmn: Fix mesh non QOS frames issue

If non QOS is enabled in meta header store it in skb priority.
Issue occurred as meta header is getting over written by ext2 header
when the frame is sent to firmware.

Change-Id: I61f90dbd188b70e8960ec84c86fda9678ab21f7c
CRs-Fixed: 2400370
Venkateswara Swamy Bandaru 6 years ago
parent
commit
09444a10ed
1 changed files with 4 additions and 4 deletions
  1. 4 4
      dp/wifi3.0/dp_tx.c

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

@@ -1738,10 +1738,7 @@ remove_meta_hdr:
 		return NULL;
 		return NULL;
 	}
 	}
 
 
-	if (mhdr->flags & METAHDR_FLAG_NOQOS)
-		msdu_info->tid = HTT_TX_EXT_TID_NON_QOS_MCAST_BCAST;
-	else
-		msdu_info->tid = qdf_nbuf_get_priority(nbuf);
+	msdu_info->tid = qdf_nbuf_get_priority(nbuf);
 
 
 	QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_HIGH,
 	QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_HIGH,
 			"%s , Meta hdr %0x %0x %0x %0x %0x %0x"
 			"%s , Meta hdr %0x %0x %0x %0x %0x %0x"
@@ -1988,6 +1985,9 @@ qdf_nbuf_t dp_tx_send_mesh(void *vap_dev, qdf_nbuf_t nbuf)
 			(mhdr->flags & METAHDR_FLAG_NOENCRYPT))
 			(mhdr->flags & METAHDR_FLAG_NOENCRYPT))
 		no_enc_frame = 1;
 		no_enc_frame = 1;
 
 
+	if (mhdr->flags & METAHDR_FLAG_NOQOS)
+		qdf_nbuf_set_priority(nbuf, HTT_TX_EXT_TID_NON_QOS_MCAST_BCAST);
+
 	if ((mhdr->flags & METAHDR_FLAG_INFO_UPDATED) &&
 	if ((mhdr->flags & METAHDR_FLAG_INFO_UPDATED) &&
 		       !no_enc_frame) {
 		       !no_enc_frame) {
 		nbuf_clone = qdf_nbuf_clone(nbuf);
 		nbuf_clone = qdf_nbuf_clone(nbuf);