qcacmn: Do not assert for ref leak if SSR/PDR is ongoing

The driver uses a timer to check if there is a potential ref leak by
inducing assert if a given module does not release ref even when the
object is in L-state. But in case there is SSR/PDR, it might take more
time to clean up/release the refs. In this case, no assert should be
triggered.

Add a check in wlan_objmgr_iterate_log_del_obj_handler before calling
the assert API.

Change-Id: Ifb7568e11bff2b9fc610633af730461e33dc5539
CRs-Fixed: 2468301
This commit is contained in:
Sourav Mohapatra
2019-06-14 15:56:15 +05:30
کامیت شده توسط nshrivas
والد ee93de85f3
کامیت 9301751243

مشاهده پرونده

@@ -26,11 +26,15 @@
#include <wlan_objmgr_peer_obj.h>
#include "wlan_objmgr_global_obj_i.h"
#include <qdf_mem.h>
#include <qdf_platform.h>
#define LOG_DEL_OBJ_TIMEOUT_VALUE_MSEC 5000
#define LOG_DEL_OBJ_DESTROY_DURATION_SEC 5
/* The max duration for which a obj can be allowed to remain in L-state */
#define LOG_DEL_OBJ_DESTROY_ASSERT_DURATION_SEC 10
/*
* The max duration for which a obj can be allowed to remain in L-state
* The duration should be higher than the psoc idle timeout.
*/
#define LOG_DEL_OBJ_DESTROY_ASSERT_DURATION_SEC 15
#define LOG_DEL_OBJ_LIST_MAX_COUNT (3 + 5 + 48 + 4096)
/**
@@ -357,8 +361,10 @@ static void wlan_objmgr_iterate_log_del_obj_handler(void *timer_arg)
wlan_objmgr_print_pending_refs(del_obj->obj, obj_type);
if (cur_tstamp > del_obj->tstamp +
LOG_DEL_OBJ_DESTROY_ASSERT_DURATION_SEC)
wlan_objmgr_debug_obj_destroyed_panic(obj_name);
LOG_DEL_OBJ_DESTROY_ASSERT_DURATION_SEC) {
if (!qdf_is_recovering() && !qdf_is_fw_down())
wlan_objmgr_debug_obj_destroyed_panic(obj_name);
}
status = qdf_list_peek_next(log_del_obj_list, node, &node);