diff --git a/core/dp/txrx/ol_tx_queue.c b/core/dp/txrx/ol_tx_queue.c index 2f0aed0def05..56c1d8481807 100644 --- a/core/dp/txrx/ol_tx_queue.c +++ b/core/dp/txrx/ol_tx_queue.c @@ -104,7 +104,7 @@ ol_tx_queue_vdev_flush(struct ol_txrx_pdev_t *pdev, struct ol_txrx_vdev_t *vdev) if (txq->frms) { ol_txrx_peer_get_ref (peer, - PEER_DEBUG_ID_OL_INTERNAL); + PEER_DEBUG_ID_OL_TXQ_VDEV_FL); peers[peer_count++] = peer; break; } @@ -123,7 +123,7 @@ ol_tx_queue_vdev_flush(struct ol_txrx_pdev_t *pdev, struct ol_txrx_vdev_t *vdev) ol_txrx_info( "%s: Delete Peer %pK\n", __func__, peer); ol_txrx_peer_release_ref(peers[i], - PEER_DEBUG_ID_OL_INTERNAL); + PEER_DEBUG_ID_OL_TXQ_VDEV_FL); } } while (peer_count >= PEER_ARRAY_COUNT); } diff --git a/core/dp/txrx/ol_txrx.c b/core/dp/txrx/ol_txrx.c index 4c7888c11687..a813004170bd 100644 --- a/core/dp/txrx/ol_txrx.c +++ b/core/dp/txrx/ol_txrx.c @@ -2189,7 +2189,7 @@ ol_txrx_peer_attach(struct cdp_vdev *pvdev, uint8_t *peer_mac_addr, qdf_atomic_init(&peer->access_list[i]); /* keep one reference for attach */ - ol_txrx_peer_get_ref(peer, PEER_DEBUG_ID_OL_INTERNAL); + ol_txrx_peer_get_ref(peer, PEER_DEBUG_ID_OL_PEER_ATTACH); /* Set a flag to indicate peer create is pending in firmware */ qdf_atomic_init(&peer->fw_create_pending); @@ -2852,27 +2852,29 @@ int ol_txrx_peer_release_ref(ol_txrx_peer_handle peer, struct ol_txrx_pdev_t *pdev; bool ref_silent = false; int access_list = 0; + uint32_t err_code = 0; /* preconditions */ TXRX_ASSERT2(peer); vdev = peer->vdev; if (NULL == vdev) { - ol_txrx_dbg( - "The vdev is not present anymore\n"); - return -EINVAL; + ol_txrx_err("The vdev is not present anymore\n"); + err_code = 0xbad1; + goto ERR_STATE; } pdev = vdev->pdev; if (NULL == pdev) { - ol_txrx_dbg( - "The pdev is not present anymore\n"); - return -EINVAL; + ol_txrx_err("The pdev is not present anymore\n"); + err_code = 0xbad2; + goto ERR_STATE; } if (debug_id >= PEER_DEBUG_ID_MAX || debug_id < 0) { ol_txrx_err("incorrect debug_id %d ", debug_id); - return -EINVAL; + err_code = 0xbad3; + goto ERR_STATE; } if (debug_id == PEER_DEBUG_ID_OL_RX_THREAD) @@ -2881,7 +2883,7 @@ int ol_txrx_peer_release_ref(ol_txrx_peer_handle peer, if (!ref_silent) wlan_roam_debug_log(vdev->vdev_id, DEBUG_PEER_UNREF_DELETE, DEBUG_INVALID_PEER_ID, &peer->mac_addr.raw, - peer, 0, + peer, 0xdead, qdf_atomic_read(&peer->ref_cnt)); @@ -3035,16 +3037,20 @@ int ol_txrx_peer_release_ref(ol_txrx_peer_handle peer, qdf_mem_free(peer); } else { - access_list = qdf_atomic_read( - &peer->access_list[debug_id]); + access_list = qdf_atomic_read(&peer->access_list[debug_id]); qdf_spin_unlock_bh(&pdev->peer_ref_mutex); if (!ref_silent) - ol_txrx_dbg("[%d][%d]: ref delete peer %pK ref_cnt -> %d", - debug_id, - access_list, - peer, rc); + ol_txrx_info_high("[%d][%d]: ref delete peer %pK ref_cnt -> %d", + debug_id, + access_list, + peer, rc); } return rc; +ERR_STATE: + wlan_roam_debug_log(vdev->vdev_id, DEBUG_PEER_UNREF_DELETE, + DEBUG_INVALID_PEER_ID, &peer->mac_addr.raw, + peer, err_code, qdf_atomic_read(&peer->ref_cnt)); + return -EINVAL; } /** @@ -3112,7 +3118,7 @@ static QDF_STATUS ol_txrx_clear_peer(struct cdp_pdev *ppdev, uint8_t sta_id) void peer_unmap_timer_work_function(void *param) { - WMA_LOGE("Enter: %s", __func__); + WMA_LOGI("Enter: %s", __func__); /* Added for debugging only */ ol_txrx_dump_peer_access_list(param); wlan_roam_debug_dump_table(); @@ -3219,7 +3225,7 @@ static void ol_txrx_peer_detach(void *ppeer, uint32_t bitmap) * PEER_UNMAP message arrives to remove the other * reference, added by the PEER_MAP message. */ - ol_txrx_peer_release_ref(peer, PEER_DEBUG_ID_OL_INTERNAL); + ol_txrx_peer_release_ref(peer, PEER_DEBUG_ID_OL_PEER_ATTACH); } /** diff --git a/core/dp/txrx/ol_txrx_peer_find.c b/core/dp/txrx/ol_txrx_peer_find.c index d007c47554cd..62bfb487b773 100644 --- a/core/dp/txrx/ol_txrx_peer_find.c +++ b/core/dp/txrx/ol_txrx_peer_find.c @@ -302,9 +302,9 @@ void ol_txrx_peer_find_hash_erase(struct ol_txrx_pdev_t *pdev) */ qdf_atomic_init(&peer->ref_cnt); /* set to 0 */ ol_txrx_peer_get_ref(peer, - PEER_DEBUG_ID_OL_INTERNAL); + PEER_DEBUG_ID_OL_HASH_ERS); ol_txrx_peer_release_ref(peer, - PEER_DEBUG_ID_OL_INTERNAL); + PEER_DEBUG_ID_OL_HASH_ERS); } } } @@ -389,7 +389,7 @@ static inline void ol_txrx_peer_find_add_id(struct ol_txrx_pdev_t *pdev, peer = ol_txrx_peer_find_hash_find_get_ref(pdev, peer_mac_addr, 1 /* is aligned */, 0, - PEER_DEBUG_ID_OL_INTERNAL); + PEER_DEBUG_ID_OL_PEER_MAP); if (!peer || peer_id == HTT_INVALID_PEER) { /* @@ -649,7 +649,7 @@ void ol_rx_peer_unmap_handler(ol_txrx_pdev_handle pdev, uint16_t peer_id) * Remove a reference to the peer. * If there are no more references, delete the peer object. */ - ol_txrx_peer_release_ref(peer, PEER_DEBUG_ID_OL_INTERNAL); + ol_txrx_peer_release_ref(peer, PEER_DEBUG_ID_OL_PEER_MAP); QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_DEBUG, "%s: peer_id %d peer %pK peer_id_ref_cnt %d", diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index f2f97565136a..a8f68f3fb90e 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -1820,7 +1820,7 @@ static int wma_remove_bss_peer(tp_wma_handle wma, void *pdev, peer = cdp_peer_get_ref_by_addr(soc, pdev, mac_addr, &peer_id, - PEER_DEBUG_ID_OL_INTERNAL); + PEER_DEBUG_ID_WMA_DEL_BSS); if (!peer) { WMA_LOGE(FL("peer NULL for vdev_id = %d"), vdev_id); wma_cleanup_target_req_param(req_msg); @@ -1848,7 +1848,7 @@ static int wma_remove_bss_peer(tp_wma_handle wma, void *pdev, } if (peer) cdp_peer_release_ref(soc, peer, - PEER_DEBUG_ID_OL_INTERNAL); + PEER_DEBUG_ID_WMA_DEL_BSS); return ret_value; } @@ -2130,8 +2130,8 @@ int wma_vdev_stop_resp_handler(void *handle, uint8_t *cmd_param_info, (tpLinkStateParams) req_msg->user_data; peer = cdp_peer_get_ref_by_addr(soc, pdev, params->bssid, - &peer_id, - PEER_DEBUG_ID_OL_INTERNAL); + &peer_id, + PEER_DEBUG_ID_WMA_VDEV_STOP_RESP); if (peer) { WMA_LOGP(FL("Deleting peer %pM vdev id %d"), params->bssid, req_msg->vdev_id); @@ -2167,7 +2167,7 @@ int wma_vdev_stop_resp_handler(void *handle, uint8_t *cmd_param_info, free_req_msg: if (peer) cdp_peer_release_ref(soc, peer, - PEER_DEBUG_ID_OL_INTERNAL); + PEER_DEBUG_ID_WMA_VDEV_STOP_RESP); qdf_mc_timer_destroy(&req_msg->event_timeout); qdf_mem_free(req_msg); return status;