qcacld-3.0: Fix deadlock in driver probe failure
Wlan driver probe callback is called in CNSS work thread(cnss_driver_event_work in cnss_powerup). In case the hdd_wlan_startup failed, and doing cleanup in hdd_wlan_stop_modules, the later will call and pending on pld_power_off to wait for cnss completion. So, deadlock happended. Don't need to call power_down because we are in (driver loading). Fix by check driver loading state to skip power_down. Change-Id: Ib8605d91e01277ccdf4a67e09723c3ee34ceec0d CRs-Fixed: 2183039
This commit is contained in:
@@ -10065,7 +10065,8 @@ int hdd_wlan_stop_modules(struct hdd_context *hdd_ctx, bool ftm_mode)
|
|||||||
QDF_STATUS qdf_status;
|
QDF_STATUS qdf_status;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
bool is_recovery_stop = cds_is_driver_recovering();
|
bool is_recovery_stop = cds_is_driver_recovering();
|
||||||
bool is_idle_stop = !cds_is_driver_unloading() && !is_recovery_stop;
|
bool is_idle_stop = !cds_is_driver_unloading() && !is_recovery_stop &&
|
||||||
|
!cds_is_driver_loading();
|
||||||
int active_threads;
|
int active_threads;
|
||||||
struct target_psoc_info *tgt_hdl;
|
struct target_psoc_info *tgt_hdl;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user