qcacld-3.0: Let probe fail gracefully after htc_wait_target returns NOMEM

During probe if htc_wait_target fails with any error status, driver will
BUG_ON except when the FW_DOWN bit is set. This is to let probe fail
gracefully in case of recoverable errors and BUG_ON for fatal errors.
So driver will BUG_ON for NOMEM errors as well, even though recovery is
possible in this case with a driver load retry.
Do not BUG_ON in case of error status is NOMEM or FW_DOWN is set.

Change-Id: I0e7cbd4db8263765f0d97709ec30de6aefb6fae5
CRs-Fixed: 2102844
This commit is contained in:
Nachiket Kukade
2017-09-06 16:49:29 +05:30
committed by snandini
parent 75d246bd84
commit f44b33eac4

View File

@@ -559,11 +559,14 @@ QDF_STATUS cds_open(struct wlan_objmgr_psoc *psoc)
"%s: HTCHandle is null!", __func__); "%s: HTCHandle is null!", __func__);
goto err_wma_close; goto err_wma_close;
} }
if (htc_wait_target(HTCHandle)) {
qdf_status = htc_wait_target(HTCHandle);
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_FATAL, QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_FATAL,
"%s: Failed to complete BMI phase", __func__); "%s: Failed to complete BMI phase", __func__);
if (!cds_is_fw_down()) if (qdf_status != QDF_STATUS_E_NOMEM
&& !cds_is_fw_down())
QDF_BUG(0); QDF_BUG(0);
goto err_wma_close; goto err_wma_close;