qcacld-3.0: Fix QDF assert in command ipaucstat

When doing HDD context check in ipa_init, the CDS is not yet
loaded. So remove the CDS loading check in ipa_init.

Change-Id: I45843c406f280cfbf932bc489f9051c2300b77ba
CRs-Fixed: 2070428
This commit is contained in:
Chris Guo 2017-07-03 14:09:01 +08:00 • committed by snandini
commit 1751acf0c2
3 changed files with 45 additions and 1 deletions

View file

@ -1844,6 +1844,14 @@ int wlan_hdd_validate_context(hdd_context_t *pHddCtx);
*/
int hdd_validate_adapter(hdd_adapter_t *adapter);
/**
* wlan_hdd_validate_context_in_loading() - check the HDD context in loading
* @hdd_ctx: HDD context pointer
*
* Return: 0 if the context is valid. Error code otherwise
*/
int wlan_hdd_validate_context_in_loading(hdd_context_t *hdd_ctx);
bool hdd_is_valid_mac_address(const uint8_t *pMacAddr);
QDF_STATUS hdd_issta_p2p_clientconnected(hdd_context_t *pHddCtx);
bool wlan_hdd_validate_modules_state(hdd_context_t *hdd_ctx);

View file

@ -886,6 +886,12 @@ static void __hdd_ipa_uc_rt_debug_host_dump(hdd_context_t *hdd_ctx)
return;
}
if (!hdd_ipa_is_rt_debugging_enabled(hdd_ctx)) {
HDD_IPA_LOG(QDF_TRACE_LEVEL_DEBUG,
"%s: IPA RT debug is not enabled", __func__);
return;
}
HDD_IPA_LOG(QDF_TRACE_LEVEL_ERROR,
"========= WLAN-IPA DEBUG BUF DUMP ==========\n");
HDD_IPA_LOG(QDF_TRACE_LEVEL_ERROR,
@ -1041,7 +1047,7 @@ static void hdd_ipa_uc_rt_debug_init(hdd_context_t *hdd_ctx)
{
struct hdd_ipa_priv *hdd_ipa;
if (wlan_hdd_validate_context(hdd_ctx))
if (wlan_hdd_validate_context_in_loading(hdd_ctx))
return;
hdd_ipa = (struct hdd_ipa_priv *)hdd_ctx->hdd_ipa;

View file

@ -605,6 +605,36 @@ int hdd_qdf_trace_enable(QDF_MODULE_ID module_id, uint32_t bitmask)
return 0;
}
/**
* wlan_hdd_validate_context_in_loading() - check the HDD context in loading
* @hdd_ctx: HDD context pointer
*
* Return: 0 if the context is valid. Error code otherwise
*/
int wlan_hdd_validate_context_in_loading(hdd_context_t *hdd_ctx)
{
if (NULL == hdd_ctx || NULL == hdd_ctx->config) {
hdd_info("%pS HDD context is Null", (void *)_RET_IP_);
return -ENODEV;
}
if (cds_is_driver_recovering()) {
hdd_info("%pS Recovery in Progress. State: 0x%x Ignore!!!",
(void *)_RET_IP_, cds_get_driver_state());
return -EAGAIN;
}
if (hdd_ctx->start_modules_in_progress ||
hdd_ctx->stop_modules_in_progress) {
hdd_info("%pS Start/Stop Modules in progress. Ignore!!!",
(void *)_RET_IP_);
return -EAGAIN;
}
return 0;
}
/**
* wlan_hdd_validate_context() - check the HDD context
* @hdd_ctx: HDD context pointer