summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/hdd/src/wlan_hdd_driver_ops.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/core/hdd/src/wlan_hdd_driver_ops.c b/core/hdd/src/wlan_hdd_driver_ops.c
index 26e697f3be9f..a73f3eacdb84 100644
--- a/core/hdd/src/wlan_hdd_driver_ops.c
+++ b/core/hdd/src/wlan_hdd_driver_ops.c
@@ -555,6 +555,18 @@ static void wlan_hdd_shutdown(void)
hdd_err("Load/unload in progress, ignore SSR shutdown");
return;
}
+
+ /*
+ * Force Complete all the wait events before shutdown.
+ * This is done at "hdd_cleanup_on_fw_down" api also to clean up the
+ * wait events of north bound apis.
+ * In case of SSR there is significant dely between FW down event and
+ * wlan_hdd_shutdown, there is a possibility of race condition that
+ * these wait events gets complete at "hdd_cleanup_on_fw_down" and
+ * some new event is added before shutdown.
+ */
+ qdf_complete_wait_events();
+
/* this is for cases, where shutdown invoked from platform */
cds_set_recovery_in_progress(true);
hdd_wlan_ssr_shutdown_event();