diff --git a/core/hdd/src/wlan_hdd_driver_ops.c b/core/hdd/src/wlan_hdd_driver_ops.c index 47852548d660..a9185a966b5e 100644 --- a/core/hdd/src/wlan_hdd_driver_ops.c +++ b/core/hdd/src/wlan_hdd_driver_ops.c @@ -1423,7 +1423,7 @@ static int wlan_hdd_runtime_resume(struct device *dev) hdd_err("PMO Runtime resume failed: %d", status); } else { if (policy_mgr_get_connection_count(hdd_ctx->psoc)) - hdd_bus_bw_compute_timer_start(hdd_ctx); + hdd_bus_bw_compute_timer_try_start(hdd_ctx); } hdd_debug("Runtime resume done"); diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index f78b48714be6..141056828338 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -9329,7 +9329,11 @@ void hdd_bus_bandwidth_deinit(struct hdd_context *hdd_ctx) { hdd_enter(); + /* it is expecting the timer has been stopped or not started + * when coming deinit. + */ QDF_BUG(!qdf_periodic_work_stop_sync(&hdd_ctx->bus_bw_work)); + qdf_periodic_work_destroy(&hdd_ctx->bus_bw_work); qdf_spinlock_destroy(&hdd_ctx->bus_bw_lock); hdd_pm_qos_remove_request(hdd_ctx);