Просмотр исходного кода

qcacmn: Fix assert in TxMON reap path

Avoid logic to detect duplicate cookie in TxMON

Change-Id: Ib3296aff72b016adababb9eb2818420ec49fbb79
CRs-Fixed: 3648225
Amir Patel 1 год назад
Родитель
Сommit
768fbdfce9
2 измененных файлов с 20 добавлено и 4 удалено
  1. 1 4
      dp/wifi3.0/monitor/2.0/dp_mon_2.0.c
  2. 19 0
      dp/wifi3.0/monitor/2.0/dp_mon_2.0.h

+ 1 - 4
dp/wifi3.0/monitor/2.0/dp_mon_2.0.c

@@ -955,10 +955,7 @@ dp_mon_buffers_replenish(struct dp_soc *dp_soc,
 		/* populate lower 40 bit mon_desc address in desc
 		 * and cookie_2 in upper 24 bits
 		 */
-		desc = (unsigned long)&((*desc_list)->mon_desc);
-		desc = (unsigned long long)((unsigned long long)desc & DP_MON_DESC_ADDR_MASK);
-		desc = (desc | ((unsigned long long)(*desc_list)->mon_desc.cookie_2 << DP_MON_DESC_ADDR_SHIFT));
-
+		desc = dp_mon_get_debug_desc_addr(desc_list);
 		hal_mon_buff_addr_info_set(dp_soc->hal_soc,
 					   mon_ring_entry,
 					   desc,

+ 19 - 0
dp/wifi3.0/monitor/2.0/dp_mon_2.0.h

@@ -619,4 +619,23 @@ QDF_STATUS
 dp_disable_enhanced_stats_2_0(struct cdp_soc_t *soc, uint8_t pdev_id);
 #endif /* QCA_ENHANCED_STATS_SUPPORT */
 
+#ifdef WLAN_PKT_CAPTURE_RX_2_0
+static inline unsigned long long
+dp_mon_get_debug_desc_addr(union dp_mon_desc_list_elem_t **desc_list)
+{
+	unsigned long long desc;
+
+	desc = (unsigned long)&((*desc_list)->mon_desc);
+	desc = (unsigned long long)((unsigned long long)desc & DP_MON_DESC_ADDR_MASK);
+	desc = (desc | ((unsigned long long)(*desc_list)->mon_desc.cookie_2 << DP_MON_DESC_ADDR_SHIFT));
+	return desc;
+}
+#else
+static inline unsigned long long
+dp_mon_get_debug_desc_addr(union dp_mon_desc_list_elem_t **desc_list)
+{
+	unsigned long long desc = (unsigned long long)&((*desc_list)->mon_desc);
+	return desc;
+}
+#endif
 #endif /* _DP_MON_2_0_H_ */