Jelajahi Sumber

qcacmn: Fix to process the RX_PPDU_END_STATUS_DONE TLV

RX_PPDU_END_STATUS_DONE TLV is not being processed, since Host
is not copying the last byte from the payload.
Add code to copy the full payload from status frag and process
it to the upper layer.

Change-Id: I51d03f5664b2944008936e3711f2ba74bcfde89c
CRs-Fixed: 3179137
Adwait Nayak 3 tahun lalu
induk
melakukan
94eec2edd6
2 mengubah file dengan 2 tambahan dan 1 penghapusan
  1. 1 0
      dp/wifi3.0/dp_rx.h
  2. 1 1
      dp/wifi3.0/monitor/2.0/dp_rx_mon_status_2.0.c

+ 1 - 0
dp/wifi3.0/dp_rx.h

@@ -46,6 +46,7 @@
 
 #define RX_BUFFER_RESERVATION   0
 #ifdef BE_PKTLOG_SUPPORT
+#define BUFFER_RESIDUE 1
 #define RX_MON_MIN_HEAD_ROOM   64
 #endif
 

+ 1 - 1
dp/wifi3.0/monitor/2.0/dp_rx_mon_status_2.0.c

@@ -46,7 +46,7 @@ dp_rx_process_pktlog_be(struct dp_soc *soc, struct dp_pdev *pdev,
 		return QDF_STATUS_E_NOMEM;
 
 	qdf_nbuf_add_rx_frag(status_frag, nbuf, 0,
-			     end_offset,
+			     (end_offset + BUFFER_RESIDUE),
 			     RX_MON_MIN_HEAD_ROOM, true);
 
 	if (mon_pdev->dp_peer_based_pktlog && ppdu_info) {