qcacmn: Peer refcount FR update DB as per new design

Update peer DB as per new design

peer_hash_table: add at peer_create and delete at peer delete
peer_id_to_obj_map: add at peer map and delete at peer unmap
peer_list: vdev level peer list add at peer create delete at
	   peer delete

Call dp_peer_cleanup() at unmap event

dp_peer_cleanup -> dp_peer_tx_cleanup -> Tx capture cleanup
	|
	---------> dp_peer_rx_cleanup -> Cleanup Rx REO TID queues &
					 defrag queue free

Introduce ref_cnt variable per VAP which will be
incremented and decremented at peer alloc and free. This counter
will be used to delay the vdev free if there are any active
peers for vdev exist in system

Change-Id: Iec13bceed0db0db71655fdbf6f96df8795b5077b
此提交包含在:
Chaithanya Garrepalli
2020-08-14 14:24:52 +05:30
提交者 snandini
父節點 86d3df0605
當前提交 e253cee043
共有 5 個檔案被更改,包括 169 行新增209 行删除

查看文件

@@ -25,6 +25,16 @@
#define DP_INVALID_PEER_ID 0xffff
#define DP_FW_PEER_STATS_CMP_TIMEOUT_MSEC 5000
static inline
QDF_STATUS dp_peer_get_ref(struct dp_soc *soc, struct dp_peer *peer)
{
if (!qdf_atomic_inc_not_zero(&peer->ref_cnt))
return QDF_STATUS_E_INVAL;
return QDF_STATUS_SUCCESS;
}
/**
* __dp_peer_find_by_id() - Returns peer object given the peer id
*