prima: Add ini param to control the crash inject
Currently the crash can be injected by iwpriv command and FW
gets crashed.
Changes are done to add the gEnableCrashInject ini parameter
- This ini param is disabled by default.
- If this param is disabled the crash inject is ignored.
Change-Id: I7e908be1e37090a9d343dc04411fe387f776a937
CRs-Fixed: 864932
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 34845b9..0c789a9 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -1542,6 +1542,16 @@
#define CFG_DEFAULT_RATE_INDEX_24GH_MAX ( 7 )
#define CFG_DEFAULT_RATE_INDEX_24GH_DEFAULT ( 1 )
+
+/*
+ * This INI item is used to control subsystem restart(SSR) test framework
+ * Set its value to 1 to enable APPS trigerred SSR testing
+ */
+#define CFG_ENABLE_CRASH_INJECT "gEnableForceTargetAssert"
+#define CFG_ENABLE_CRASH_INJECT_MIN (0)
+#define CFG_ENABLE_CRASH_INJECT_MAX (1)
+#define CFG_ENABLE_CRASH_INJECT_DEFAULT (0)
+
static __inline tANI_U32 defHddRateToDefCfgRate( tANI_U32 defRateIndex )
{
switch(defRateIndex){
@@ -3046,6 +3056,7 @@
v_U32_t linkFailTxCnt;
v_BOOL_t ignorePeerHTopMode;
v_U8_t gOptimizeCAevent;
+ v_BOOL_t crash_inject_enabled;
} hdd_config_t;
/*---------------------------------------------------------------------------
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index b775c61..5f5d258 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -3395,6 +3395,12 @@
CFG_OPTIMIZE_CA_EVENT_DEFAULT,
CFG_OPTIMIZE_CA_EVENT_DISABLE,
CFG_OPTIMIZE_CA_EVENT_ENABLE ),
+ REG_VARIABLE( CFG_ENABLE_CRASH_INJECT, WLAN_PARAM_Integer,
+ hdd_config_t, crash_inject_enabled,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_CRASH_INJECT_DEFAULT,
+ CFG_ENABLE_CRASH_INJECT_MIN,
+ CFG_ENABLE_CRASH_INJECT_MAX),
};
@@ -3819,6 +3825,7 @@
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gDxeReplenishRXTimerVal] Value = [%u] ", pHddCtx->cfg_ini->dxeReplenishRXTimerVal);
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gDxeSSREnable] Value = [%u] ", pHddCtx->cfg_ini->dxeSSREnable);
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [toggleArpBDRates] Value = [%u] ", pHddCtx->cfg_ini->toggleArpBDRates);
+ VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gEnableForceTargetAssert] Value = [%u] ", pHddCtx->cfg_ini->crash_inject_enabled);
}
diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c
index fed4041..a21d071 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -7310,6 +7310,12 @@
{
case WE_LOG_DUMP_CMD:
{
+ if (apps_args[0] == 26) {
+ if (!pHddCtx->cfg_ini->crash_inject_enabled) {
+ hddLog(LOGE, "Crash Inject ini disabled, Ignore Crash Inject");
+ return 0;
+ }
+ }
hddLog(LOG1, "%s: LOG_DUMP %d arg1 %d arg2 %d arg3 %d arg4 %d",
__func__, apps_args[0], apps_args[1], apps_args[2],
apps_args[3], apps_args[4]);