diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h index d251e39ac0e39..70e51ac6c8efe 100644 --- a/core/hdd/inc/wlan_hdd_main.h +++ b/core/hdd/inc/wlan_hdd_main.h @@ -369,8 +369,6 @@ enum hdd_driver_flags { /* Assigned size of driver memory dump is 4096 bytes */ #define DRIVER_MEM_DUMP_SIZE 4096 -extern struct mutex hdd_init_deinit_lock; - /* MAX OS Q block time value in msec * Prevent from permanent stall, resume OS Q if timer expired */ diff --git a/core/hdd/src/wlan_hdd_driver_ops.c b/core/hdd/src/wlan_hdd_driver_ops.c index dff5f3470b11b..d2aa231dd4242 100644 --- a/core/hdd/src/wlan_hdd_driver_ops.c +++ b/core/hdd/src/wlan_hdd_driver_ops.c @@ -359,7 +359,6 @@ static int check_for_probe_defer(int ret) static void hdd_soc_load_lock(struct device *dev) { - mutex_lock(&hdd_init_deinit_lock); hdd_prevent_suspend(WIFI_POWER_EVENT_WAKELOCK_DRIVER_INIT); hdd_request_pm_qos(dev, DISABLE_KRAIT_IDLE_PS_VAL); } @@ -368,7 +367,6 @@ static void hdd_soc_load_unlock(struct device *dev) { hdd_remove_pm_qos(dev); hdd_allow_suspend(WIFI_POWER_EVENT_WAKELOCK_DRIVER_INIT); - mutex_unlock(&hdd_init_deinit_lock); } static int __hdd_soc_probe(struct device *dev, @@ -579,7 +577,6 @@ static void __hdd_soc_remove(struct device *dev) if (!hdd_wait_for_debugfs_threads_completion()) hdd_warn("Debugfs threads are still active attempting driver unload anyway"); - mutex_lock(&hdd_init_deinit_lock); if (hdd_get_conparam() == QDF_GLOBAL_EPPING_MODE) { hdd_wlan_stop_modules(hdd_ctx, false); epping_disable(); @@ -590,8 +587,6 @@ static void __hdd_soc_remove(struct device *dev) hdd_context_destroy(hdd_ctx); - mutex_unlock(&hdd_init_deinit_lock); - cds_set_driver_in_bad_state(false); cds_set_unload_in_progress(false); @@ -713,23 +708,21 @@ static void __hdd_soc_recovery_shutdown(void) /* cancel/flush any pending/active idle shutdown work */ hdd_psoc_idle_timer_stop(hdd_ctx); - mutex_lock(&hdd_init_deinit_lock); - /* nothing to do if the soc is already unloaded */ if (hdd_ctx->driver_status == DRIVER_MODULES_CLOSED) { hdd_info("Driver modules are already closed"); - goto unlock; + return; } if (cds_is_load_or_unload_in_progress()) { hdd_info("Load/unload in progress, ignore SSR shutdown"); - goto unlock; + return; } hif_ctx = cds_get_context(QDF_MODULE_ID_HIF); if (!hif_ctx) { hdd_err("Failed to get HIF context, ignore SSR shutdown"); - goto unlock; + return; } /* mask the host controller interrupts */ @@ -747,13 +740,6 @@ static void __hdd_soc_recovery_shutdown(void) hif_disable_isr(hif_ctx); hdd_wlan_shutdown(); } - - mutex_unlock(&hdd_init_deinit_lock); - - return; - -unlock: - mutex_unlock(&hdd_init_deinit_lock); } /** diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index a357457329d8d..97d80270dccaf 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -232,8 +232,6 @@ static char *country_code; static int enable_11d = -1; static int enable_dfs_chan_scan = -1; -DEFINE_MUTEX(hdd_init_deinit_lock); - #define WLAN_NLINK_CESIUM 30 static qdf_wake_lock_t wlan_wake_lock; @@ -3113,8 +3111,6 @@ static int __hdd_open(struct net_device *dev) return -EBUSY; } - mutex_lock(&hdd_init_deinit_lock); - /* * This scenario can be hit in cases where in the wlan driver after * registering the netdevices and there is a failure in driver @@ -3124,14 +3120,13 @@ static int __hdd_open(struct net_device *dev) if (!cds_is_driver_loaded()) { hdd_err("Failed to start the wlan driver!!"); - ret = -EIO; - goto err_hdd_hdd_init_deinit_lock; + return -EIO; } ret = hdd_psoc_idle_restart(hdd_ctx); if (ret) { hdd_err("Failed to start WLAN modules return"); - goto err_hdd_hdd_init_deinit_lock; + return ret; } if (!test_bit(SME_SESSION_OPENED, &adapter->event_flags)) { @@ -3139,7 +3134,7 @@ static int __hdd_open(struct net_device *dev) if (ret) { hdd_err("Failed to start adapter :%d", adapter->device_mode); - goto err_hdd_hdd_init_deinit_lock; + return ret; } } @@ -3163,10 +3158,7 @@ static int __hdd_open(struct net_device *dev) hdd_populate_wifi_pos_cfg(hdd_ctx); hdd_lpass_notify_start(hdd_ctx, adapter); -err_hdd_hdd_init_deinit_lock: - mutex_unlock(&hdd_init_deinit_lock); - - return ret; + return 0; } /** @@ -13507,7 +13499,6 @@ static int __hdd_driver_mode_change(struct hdd_context *hdd_ctx, } qdf_atomic_set(&hdd_ctx->con_mode_flag, 1); - mutex_lock(&hdd_init_deinit_lock); curr_mode = hdd_get_conparam(); if (curr_mode == next_mode) { @@ -13570,7 +13561,6 @@ static int __hdd_driver_mode_change(struct hdd_context *hdd_ctx, errno = 0; unlock: - mutex_unlock(&hdd_init_deinit_lock); qdf_atomic_set(&hdd_ctx->con_mode_flag, 0); return errno;