qcacmn: Provide implementation of command queue operations
Provide the implementation to enqueue, dequeue, cancel,
remove, flush operation of command.
Change-Id: Id62cf320fa0936ed3ddb1264464d35ab5c60e95a
CRs-Fixed: 2000032
diff --git a/umac/cmn_services/serialization/src/wlan_serialization_main.c b/umac/cmn_services/serialization/src/wlan_serialization_main.c
index aaf3c63..da998e4 100644
--- a/umac/cmn_services/serialization/src/wlan_serialization_main.c
+++ b/umac/cmn_services/serialization/src/wlan_serialization_main.c
@@ -29,6 +29,7 @@
#include "wlan_objmgr_psoc_obj.h"
#include "wlan_serialization_main_i.h"
#include "wlan_serialization_rules_i.h"
+#include "wlan_serialization_utils_i.h"
/**
* wlan_serialization_apply_rules_cb_init() - Apply rule callback init
@@ -95,6 +96,11 @@
serialization_err("invalid ser_soc_obj");
return QDF_STATUS_E_FAILURE;
}
+ /* clean up all timers before exiting */
+ status = wlan_serialization_cleanup_all_timers(ser_soc_obj);
+ if (status != QDF_STATUS_SUCCESS)
+ serialization_err("ser cleanning up all timer failed");
+
qdf_mem_free(ser_soc_obj->timers);
ser_soc_obj->timers = NULL;
ser_soc_obj->max_active_cmds = 0;
@@ -160,15 +166,15 @@
{
qdf_list_node_t *node = NULL;
- struct wlan_serialization_command_list *cmd_list_node;
+ struct wlan_serialization_command_list *cmd_list;
while (!qdf_list_empty(&ser_pdev_obj->global_cmd_pool_list)) {
qdf_list_remove_front(&ser_pdev_obj->global_cmd_pool_list,
&node);
- cmd_list_node = (struct wlan_serialization_command_list *)node;
+ cmd_list = (struct wlan_serialization_command_list *)node;
serialization_info("Node being freed from global pool %p",
- cmd_list_node);
- qdf_mem_free(cmd_list_node);
+ cmd_list);
+ qdf_mem_free(cmd_list);
}
qdf_list_destroy(&ser_pdev_obj->global_cmd_pool_list);