浏览代码

qcacmn: Add ini cfg to disable invalid decap type handling

Add ini configuration to disable invalid decap type handling
during rx mon tlv processing. This is a temporary change for
debugging purpose and will be removed once HW issue is resolved.

Change-Id: I75eb53170833224ddd144baf1b1d8034f988dd3c
CRs-Fixed: 3308998
Jeevan Kukkalli 2 年之前
父节点
当前提交
3bc974804e
共有 4 个文件被更改,包括 16 次插入2 次删除
  1. 5 1
      dp/wifi3.0/monitor/2.0/dp_rx_mon_2.0.c
  2. 6 1
      wlan_cfg/cfg_dp.h
  3. 2 0
      wlan_cfg/wlan_cfg.c
  4. 3 0
      wlan_cfg/wlan_cfg.h

+ 5 - 1
dp/wifi3.0/monitor/2.0/dp_rx_mon_2.0.c

@@ -1190,7 +1190,11 @@ uint8_t dp_rx_mon_process_tlv_status(struct dp_pdev *pdev,
 			qdf_frag_free(addr);
 			qdf_nbuf_queue_remove_last(&ppdu_info->mpdu_q[user_id]);
 			qdf_nbuf_free(nbuf);
-			/* we have freed the nbuf mark the q entry null */
+			/* if invalid decap type handling is disabled, assert */
+			if (soc->wlan_cfg_ctx->is_handle_invalid_decap_type_disabled) {
+				dp_mon_err("Decap type invalid");
+				qdf_assert_always(0);
+			}
 			return num_buf_reaped;
 		}
 

+ 6 - 1
wlan_cfg/cfg_dp.h

@@ -1263,6 +1263,10 @@
 	CFG_INI_BOOL("dp_tx_allow_per_pkt_vdev_id_check", false, \
 		     "Enable/Disable tx Per Pkt vdev id check")
 
+#define CFG_DP_HANDLE_INVALID_DECAP_TYPE_DISABLE \
+	CFG_INI_BOOL("dp_handle_invalid_decap_type_disable", false, \
+		     "Enable/Disable DP TLV out of order WAR")
+
 /*
  * <ini>
  * dp_rx_fisa_enable - Control Rx datapath FISA
@@ -1859,5 +1863,6 @@
 		CFG(CFG_DP_TX_CAPT_MAX_MEM_MB) \
 		CFG(CFG_DP_NAPI_SCALE_FACTOR) \
 		CFG(CFG_DP_HOST_AST_DB_ENABLE) \
-		CFG_DP_SAWF_STATS_CONFIG
+		CFG_DP_SAWF_STATS_CONFIG \
+		CFG(CFG_DP_HANDLE_INVALID_DECAP_TYPE_DISABLE)
 #endif /* _CFG_DP_H_ */

+ 2 - 0
wlan_cfg/wlan_cfg.c

@@ -2898,6 +2898,8 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc)
 	wlan_cfg_ctx->napi_scale_factor = cfg_get(psoc,
 						  CFG_DP_NAPI_SCALE_FACTOR);
 	wlan_soc_sawf_stats_cfg_attach(psoc, wlan_cfg_ctx);
+	wlan_cfg_ctx->is_handle_invalid_decap_type_disabled =
+			cfg_get(psoc, CFG_DP_HANDLE_INVALID_DECAP_TYPE_DISABLE);
 	return wlan_cfg_ctx;
 }
 

+ 3 - 0
wlan_cfg/wlan_cfg.h

@@ -269,6 +269,8 @@ struct wlan_srng_cfg {
  * @mpdu_retry_threshold_2: MPDU retry threshold 2 to increment tx bad count
  * napi_scale_factor: scaling factor to be used for napi polls
  * @notify_frame_support: flag indicating capability to mark notify frames
+ * @is_handle_invalid_decap_type_disabled: flag to indicate if invalid decap type
+ *                                         handling is disabled
  */
 struct wlan_cfg_dp_soc_ctxt {
 	int num_int_ctxts;
@@ -449,6 +451,7 @@ struct wlan_cfg_dp_soc_ctxt {
 	uint8_t mpdu_retry_threshold_2;
 	uint8_t napi_scale_factor;
 	uint8_t notify_frame_support;
+	bool is_handle_invalid_decap_type_disabled;
 };
 
 /**