diff options
| -rw-r--r-- | core/hdd/src/wlan_hdd_driver_ops.c | 34 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_power.c | 3 |
2 files changed, 31 insertions, 6 deletions
diff --git a/core/hdd/src/wlan_hdd_driver_ops.c b/core/hdd/src/wlan_hdd_driver_ops.c index 7861b503b4c5..afee223dcd4d 100644 --- a/core/hdd/src/wlan_hdd_driver_ops.c +++ b/core/hdd/src/wlan_hdd_driver_ops.c @@ -650,8 +650,13 @@ static int __wlan_hdd_bus_resume(void) { hdd_context_t *hdd_ctx = cds_get_context(QDF_MODULE_ID_HDD); void *hif_ctx; - int status = wlan_hdd_validate_context(hdd_ctx); + int status; + QDF_STATUS qdf_status; + + if (cds_is_driver_recovering()) + return 0; + status = wlan_hdd_validate_context(hdd_ctx); if (status) return status; @@ -665,15 +670,28 @@ static int __wlan_hdd_bus_resume(void) return -EINVAL; status = hif_bus_resume(hif_ctx); - QDF_BUG(!status); + if (status) + goto out; status = wma_bus_resume(); - QDF_BUG(!status); + if (status) + goto out; - status = ol_txrx_bus_resume(); - QDF_BUG(!status); + qdf_status = ol_txrx_bus_resume(); + status = qdf_status_to_os_return(qdf_status); + if (status) + goto out; hdd_info("resume done"); + + return 0; + +out: + if (cds_is_driver_recovering()) + return 0; + + QDF_BUG(false); + return status; } @@ -701,8 +719,12 @@ static int __wlan_hdd_bus_resume_noirq(void) { hdd_context_t *hdd_ctx = cds_get_context(QDF_MODULE_ID_HDD); void *hif_ctx; - int status = wlan_hdd_validate_context(hdd_ctx); + int status; + + if (cds_is_driver_recovering()) + return 0; + status = wlan_hdd_validate_context(hdd_ctx); if (status) { hdd_err("Invalid HDD context: %d", status); return status; diff --git a/core/hdd/src/wlan_hdd_power.c b/core/hdd/src/wlan_hdd_power.c index fb4e58880e4d..e555233a7b5e 100644 --- a/core/hdd/src/wlan_hdd_power.c +++ b/core/hdd/src/wlan_hdd_power.c @@ -1729,6 +1729,9 @@ static int __wlan_hdd_cfg80211_resume_wlan(struct wiphy *wiphy) ENTER(); + if (cds_is_driver_recovering()) + return 0; + if (QDF_GLOBAL_FTM_MODE == hdd_get_conparam()) { hdd_err("Command not allowed in FTM mode"); return -EINVAL; |
