Эх сурвалжийг харах

qcacmn: Add debug prints when logically deleting an object

Add prints for all the references held by the components,
for an object, when the object is logically deleted.

The prints will be enabled only when the log
level is set to Debug.

Change-Id: If0a5b97a5e250fe1e5058611026c3c7ae8500359
CRs-Fixed: 2059750
Vivek 7 жил өмнө
parent
commit
1312d700b5

+ 11 - 0
umac/cmn_services/obj_mgr/src/wlan_objmgr_pdev_obj.c

@@ -221,10 +221,21 @@ static QDF_STATUS wlan_objmgr_pdev_obj_destroy(struct wlan_objmgr_pdev *pdev)
 
 QDF_STATUS wlan_objmgr_pdev_obj_delete(struct wlan_objmgr_pdev *pdev)
 {
+	uint8_t print_idx;
+
 	if (pdev == NULL) {
 		obj_mgr_err("pdev is NULL");
 		return QDF_STATUS_E_FAILURE;
 	}
+
+	print_idx = qdf_get_pidx();
+	if (qdf_print_is_verbose_enabled(print_idx, QDF_MODULE_ID_OBJ_MGR,
+		QDF_TRACE_LEVEL_DEBUG)) {
+		obj_mgr_debug("Logically deleting the pdev(id:%d)",
+					pdev->pdev_objmgr.wlan_pdev_id);
+		wlan_objmgr_print_ref_ids(pdev->pdev_objmgr.ref_id_dbg);
+	}
+
 	/*
 	 * Update PDEV object state to LOGICALLY DELETED
 	 * It prevents further access of this object

+ 18 - 0
umac/cmn_services/obj_mgr/src/wlan_objmgr_peer_obj.c

@@ -289,11 +289,29 @@ static QDF_STATUS wlan_objmgr_peer_obj_destroy(struct wlan_objmgr_peer *peer)
 
 QDF_STATUS wlan_objmgr_peer_obj_delete(struct wlan_objmgr_peer *peer)
 {
+	uint8_t print_idx;
+	uint8_t *macaddr;
+
 	if (peer == NULL) {
 		obj_mgr_err("PEER is NULL");
 		return QDF_STATUS_E_FAILURE;
 	}
 
+	wlan_peer_obj_lock(peer);
+	macaddr = wlan_peer_get_macaddr(peer);
+	wlan_peer_obj_unlock(peer);
+
+
+	print_idx = qdf_get_pidx();
+	if (qdf_print_is_verbose_enabled(print_idx, QDF_MODULE_ID_OBJ_MGR,
+		QDF_TRACE_LEVEL_DEBUG)) {
+		obj_mgr_debug("Logically deleting the peer"
+					"(%02x:%02x:%02x:%02x:%02x:%02x)",
+					macaddr[0], macaddr[1], macaddr[2],
+					macaddr[3], macaddr[4], macaddr[5]);
+		wlan_objmgr_print_ref_ids(peer->peer_objmgr.ref_id_dbg);
+	}
+
 	/**
 	 * Update VDEV object state to LOGICALLY DELETED
 	 * It prevents further access of this object

+ 11 - 0
umac/cmn_services/obj_mgr/src/wlan_objmgr_psoc_obj.c

@@ -235,10 +235,21 @@ static QDF_STATUS wlan_objmgr_psoc_obj_destroy(struct wlan_objmgr_psoc *psoc)
 
 QDF_STATUS wlan_objmgr_psoc_obj_delete(struct wlan_objmgr_psoc *psoc)
 {
+	uint8_t print_idx;
+
 	if (psoc == NULL) {
 		obj_mgr_err("psoc is NULL");
 		return QDF_STATUS_E_FAILURE;
 	}
+
+	print_idx = qdf_get_pidx();
+
+	if (qdf_print_is_verbose_enabled(print_idx, QDF_MODULE_ID_OBJ_MGR,
+		QDF_TRACE_LEVEL_DEBUG)) {
+		obj_mgr_debug("Logically deleting the psoc");
+		wlan_objmgr_print_ref_ids(psoc->soc_objmgr.ref_id_dbg);
+	}
+
 	/*
 	 * Update PSOC object state to LOGICALLY DELETED
 	 * It prevents further access of this object

+ 11 - 0
umac/cmn_services/obj_mgr/src/wlan_objmgr_vdev_obj.c

@@ -276,10 +276,21 @@ static QDF_STATUS wlan_objmgr_vdev_obj_destroy(struct wlan_objmgr_vdev *vdev)
 
 QDF_STATUS wlan_objmgr_vdev_obj_delete(struct wlan_objmgr_vdev *vdev)
 {
+	uint8_t print_idx;
+
 	if (vdev == NULL) {
 		obj_mgr_err("vdev is NULL");
 		return QDF_STATUS_E_FAILURE;
 	}
+
+	print_idx = qdf_get_pidx();
+	if (qdf_print_is_verbose_enabled(print_idx, QDF_MODULE_ID_OBJ_MGR,
+		QDF_TRACE_LEVEL_DEBUG)) {
+		obj_mgr_debug("Logically deleting the vdev(id:%d)",
+					vdev->vdev_objmgr.vdev_id);
+		wlan_objmgr_print_ref_ids(vdev->vdev_objmgr.ref_id_dbg);
+	}
+
 	/*
 	 * Update VDEV object state to LOGICALLY DELETED
 	 * It prevents further access of this object