qcacld-3.0: Debug commit to track peer refcount
Add prints to track how peer->ref_cnt and peer_id_ref_cnt change Change-Id: I518f58ec053e53ec2d82bcce85f872cd48029c99 CRs-Fixed: 1046458
This commit is contained in:

committed by
Vishwajith Upendra

父節點
7f2d07eede
當前提交
3aee13142b
@@ -692,6 +692,10 @@ ol_tx_classify_mgmt(
|
||||
mac_addr,
|
||||
&peer->mac_addr) != 0) {
|
||||
qdf_atomic_dec(&peer->ref_cnt);
|
||||
qdf_print("%s: peer %p peer->ref_cnt %d",
|
||||
__func__, peer,
|
||||
qdf_atomic_read
|
||||
(&peer->ref_cnt));
|
||||
peer = NULL;
|
||||
}
|
||||
}
|
||||
|
@@ -92,6 +92,10 @@ ol_tx_queue_vdev_flush(struct ol_txrx_pdev_t *pdev, struct ol_txrx_vdev_t *vdev)
|
||||
txq = &peer->txqs[i];
|
||||
if (txq->frms) {
|
||||
qdf_atomic_inc(&peer->ref_cnt);
|
||||
qdf_print("%s: peer %p peer->ref_cnt %d",
|
||||
__func__, peer,
|
||||
qdf_atomic_read
|
||||
(&peer->ref_cnt));
|
||||
peers[peer_count++] = peer;
|
||||
break;
|
||||
}
|
||||
|
@@ -258,6 +258,8 @@ ol_txrx_find_peer_by_addr_and_vdev(ol_txrx_pdev_handle pdev,
|
||||
return NULL;
|
||||
*peer_id = peer->local_id;
|
||||
qdf_atomic_dec(&peer->ref_cnt);
|
||||
qdf_print("%s: peer %p peer->ref_cnt %d", __func__, peer,
|
||||
qdf_atomic_read(&peer->ref_cnt));
|
||||
return peer;
|
||||
}
|
||||
|
||||
@@ -312,6 +314,8 @@ ol_txrx_peer_handle ol_txrx_find_peer_by_addr(ol_txrx_pdev_handle pdev,
|
||||
return NULL;
|
||||
*peer_id = peer->local_id;
|
||||
qdf_atomic_dec(&peer->ref_cnt);
|
||||
qdf_print("%s: peer %p peer->ref_cnt %d", __func__, peer,
|
||||
qdf_atomic_read(&peer->ref_cnt));
|
||||
return peer;
|
||||
}
|
||||
|
||||
@@ -2149,6 +2153,8 @@ ol_txrx_peer_attach(ol_txrx_vdev_handle vdev, uint8_t *peer_mac_addr)
|
||||
|
||||
/* keep one reference for ol_rx_peer_map_handler */
|
||||
qdf_atomic_inc(&peer->ref_cnt);
|
||||
qdf_print("%s: peer %p peer->ref_cnt %d", __func__, peer,
|
||||
qdf_atomic_read(&peer->ref_cnt));
|
||||
|
||||
peer->valid = 1;
|
||||
|
||||
@@ -2546,6 +2552,8 @@ QDF_STATUS ol_txrx_peer_state_update(struct ol_txrx_pdev_t *pdev,
|
||||
__func__);
|
||||
#endif
|
||||
qdf_atomic_dec(&peer->ref_cnt);
|
||||
qdf_print("%s: peer %p peer->ref_cnt %d", __func__, peer,
|
||||
qdf_atomic_read(&peer->ref_cnt));
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -2576,7 +2584,8 @@ QDF_STATUS ol_txrx_peer_state_update(struct ol_txrx_pdev_t *pdev,
|
||||
}
|
||||
}
|
||||
qdf_atomic_dec(&peer->ref_cnt);
|
||||
|
||||
qdf_print("%s: peer %p peer->ref_cnt %d", __func__, peer,
|
||||
qdf_atomic_read(&peer->ref_cnt));
|
||||
/* Set the state after the Pause to avoid the race condiction
|
||||
with ADDBA check in tx path */
|
||||
peer->state = state;
|
||||
@@ -2679,6 +2688,8 @@ ol_txrx_peer_update(ol_txrx_vdev_handle vdev,
|
||||
}
|
||||
}
|
||||
qdf_atomic_dec(&peer->ref_cnt);
|
||||
qdf_print("%s: peer %p peer->ref_cnt %d", __func__, peer,
|
||||
qdf_atomic_read(&peer->ref_cnt));
|
||||
}
|
||||
|
||||
uint8_t
|
||||
@@ -2801,7 +2812,7 @@ void ol_txrx_peer_unref_delete(ol_txrx_peer_handle peer)
|
||||
*/
|
||||
qdf_spin_unlock_bh(&pdev->peer_ref_mutex);
|
||||
|
||||
TXRX_PRINT(TXRX_PRINT_LEVEL_INFO1,
|
||||
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR,
|
||||
"%s: deleting vdev object %p "
|
||||
"(%02x:%02x:%02x:%02x:%02x:%02x)"
|
||||
" - its last peer is done\n",
|
||||
@@ -2847,6 +2858,9 @@ void ol_txrx_peer_unref_delete(ol_txrx_peer_handle peer)
|
||||
|
||||
qdf_mem_free(peer);
|
||||
} else {
|
||||
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR,
|
||||
"%s: peer %p peer->ref_cnt = %d\n", __func__, peer,
|
||||
qdf_atomic_read(&peer->ref_cnt));
|
||||
qdf_spin_unlock_bh(&pdev->peer_ref_mutex);
|
||||
}
|
||||
}
|
||||
|
@@ -195,6 +195,9 @@ struct ol_txrx_peer_t *ol_txrx_peer_vdev_find_hash(struct ol_txrx_pdev_t *pdev,
|
||||
/* found it - increment the ref count before releasing
|
||||
the lock */
|
||||
qdf_atomic_inc(&peer->ref_cnt);
|
||||
qdf_print("%s: peer %p peer->ref_cnt %d",
|
||||
__func__, peer,
|
||||
qdf_atomic_read(&peer->ref_cnt));
|
||||
qdf_spin_unlock_bh(&pdev->peer_ref_mutex);
|
||||
return peer;
|
||||
}
|
||||
@@ -228,6 +231,9 @@ struct ol_txrx_peer_t *ol_txrx_peer_find_hash_find(struct ol_txrx_pdev_t *pdev,
|
||||
releasing the lock */
|
||||
qdf_atomic_inc(&peer->ref_cnt);
|
||||
qdf_spin_unlock_bh(&pdev->peer_ref_mutex);
|
||||
qdf_print("%s: peer %p peer->ref_cnt %d",
|
||||
__func__, peer,
|
||||
qdf_atomic_read(&peer->ref_cnt));
|
||||
return peer;
|
||||
}
|
||||
}
|
||||
@@ -293,8 +299,9 @@ void ol_txrx_peer_find_hash_erase(struct ol_txrx_pdev_t *pdev)
|
||||
qdf_atomic_init(&peer->ref_cnt); /* set to 0 */
|
||||
qdf_atomic_inc(&peer->ref_cnt); /* incr to 1 */
|
||||
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR,
|
||||
"%s: Delete Peer %p\n", __func__,
|
||||
peer);
|
||||
"%s: Delete Peer %p ref_cnt %d\n", __func__,
|
||||
peer,
|
||||
qdf_atomic_read(&peer->ref_cnt));
|
||||
ol_txrx_peer_unref_delete(peer);
|
||||
}
|
||||
}
|
||||
@@ -353,6 +360,16 @@ ol_txrx_peer_find_add_id(struct ol_txrx_pdev_t *pdev,
|
||||
}
|
||||
qdf_atomic_inc
|
||||
(&pdev->peer_id_to_obj_map[peer_id].peer_id_ref_cnt);
|
||||
|
||||
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR,
|
||||
"%s: peer %p ID %d peer_id_ref_cnt %d peer->ref_cnt %d\n",
|
||||
__func__,
|
||||
peer, peer_id,
|
||||
qdf_atomic_read(&pdev->
|
||||
peer_id_to_obj_map[peer_id].
|
||||
peer_id_ref_cnt),
|
||||
qdf_atomic_read(&peer->ref_cnt));
|
||||
|
||||
/*
|
||||
* remove the reference added in ol_txrx_peer_find_hash_find.
|
||||
* the reference for the first peer id is already added in
|
||||
@@ -503,8 +520,10 @@ void ol_rx_peer_unmap_handler(ol_txrx_pdev_handle pdev, uint16_t peer_id)
|
||||
* If there are no more references, delete the peer object.
|
||||
*/
|
||||
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR,
|
||||
"%s: Remove the ID %d reference to peer %p\n",
|
||||
__func__, peer_id, peer);
|
||||
"%s: Remove the ID %d reference to peer %p peer_id_ref_cnt %d\n",
|
||||
__func__, peer_id, peer,
|
||||
qdf_atomic_read
|
||||
(&pdev->peer_id_to_obj_map[peer_id].peer_id_ref_cnt));
|
||||
ol_txrx_peer_unref_delete(peer);
|
||||
}
|
||||
|
||||
@@ -521,6 +540,10 @@ struct ol_txrx_peer_t *ol_txrx_assoc_peer_find(struct ol_txrx_vdev_t *vdev)
|
||||
&& vdev->last_real_peer->peer_ids[0] != HTT_INVALID_PEER_ID) {
|
||||
qdf_atomic_inc(&vdev->last_real_peer->ref_cnt);
|
||||
peer = vdev->last_real_peer;
|
||||
qdf_print("%s: peer %p peer->ref_cnt %d",
|
||||
__func__, peer,
|
||||
qdf_atomic_read
|
||||
(&peer->ref_cnt));
|
||||
} else {
|
||||
peer = NULL;
|
||||
}
|
||||
|
Reference in New Issue
Block a user