Browse Source

qcacmn: Use 'end_offset' as delimiter for status buffer
parsing

HW desc provides 'end_offset' which can be used as delimiter
to identify status buffer boundary

Change-Id: I265ab328b80615fd2386402f0ea3797d124b8f8f
CRs-Fixed: 3157554

Amir Patel 3 years ago
parent
commit
2ea0071499
1 changed files with 7 additions and 0 deletions
  1. 7 0
      dp/wifi3.0/monitor/2.0/dp_rx_mon_2.0.c

+ 7 - 0
dp/wifi3.0/monitor/2.0/dp_rx_mon_2.0.c

@@ -289,6 +289,13 @@ dp_rx_mon_process_status_tlv(struct dp_pdev *pdev)
 
 			rx_tlv = hal_rx_status_get_next_tlv(rx_tlv, 1);
 
+			/* HW provides end_offset (how many bytes HW DMA'ed)
+			 * as part of descriptor, use this as delimiter for
+			 * status buffer
+			 */
+			if ((rx_tlv - rx_tlv_start) >= (end_offset + 1))
+				break;
+
 	} while ((tlv_status == HAL_TLV_STATUS_PPDU_NOT_DONE) ||
 			(tlv_status == HAL_TLV_STATUS_HEADER) ||
 			(tlv_status == HAL_TLV_STATUS_MPDU_END) ||