qcacmn: increment refcount for peer find by id

Use unified version of dp_peer_find_by_id API
which will take peer reference

Also use unified peer ref release API dp_peer_unref_delete

Change-Id: Ibb516a933020a42a5584dbbbba59f8d9b72dcaa4
这个提交包含在:
Chaithanya Garrepalli
2020-08-13 00:06:01 +05:30
提交者 snandini
父节点 e253cee043
当前提交 113841906c
修改 10 个文件,包含 86 行新增101 行删除

查看文件

@@ -1937,7 +1937,8 @@ dp_rx_peer_map_handler(struct dp_soc *soc, uint16_t peer_id,
err = dp_peer_map_ast(soc, peer, peer_mac_addr, hw_peer_id,
vdev_id, ast_hash, is_wds);
if (peer)
dp_peer_unref_delete(peer);
} else {
/*
* It's the responsibility of the CP and FW to ensure
@@ -2020,15 +2021,17 @@ dp_rx_peer_unmap_handler(struct dp_soc *soc, uint16_t peer_id,
* in peer_id_to_obj_map will be NULL.
*/
if (!peer) {
dp_err("Received unmap event for invalid peer_id %u", peer_id);
dp_err("Received unmap event for invalid peer_id %u",
peer_id);
return;
}
/* If V2 Peer map messages are enabled AST entry has to be freed here
*/
if (is_wds) {
if (!dp_peer_ast_free_entry_by_mac(soc, peer, mac_addr))
if (!dp_peer_ast_free_entry_by_mac(soc, peer, mac_addr)) {
return;
}
dp_alert("AST entry not found with peer %pK peer_id %u peer_mac %pM mac_addr %pM vdev_id %u next_hop %u",
peer, peer->peer_id,
@@ -2061,6 +2064,9 @@ dp_rx_peer_unmap_handler(struct dp_soc *soc, uint16_t peer_id,
dp_peer_cleanup(vdev, peer);
DP_UPDATE_STATS(vdev, peer);
qdf_spin_lock_bh(&soc->inactive_peer_list_lock);
TAILQ_INSERT_TAIL(&soc->inactive_peer_list, peer, inactive_list_elem);
qdf_spin_unlock_bh(&soc->inactive_peer_list_lock);
/*
* Remove a reference to the peer.
* If there are no more references, delete the peer object.
@@ -3662,7 +3668,7 @@ dp_rx_sec_ind_handler(struct dp_soc *soc, uint16_t peer_id,
* is available
*/
dp_peer_unref_del_find_by_id(peer);
dp_peer_unref_delete(peer);
}
#ifdef QCA_PEER_EXT_STATS
@@ -3798,7 +3804,7 @@ dp_rx_delba_ind_handler(void *soc_handle, uint16_t peer_id,
status = QDF_STATUS_E_FAILURE;
}
dp_peer_unref_del_find_by_id(peer);
dp_peer_unref_delete(peer);
return status;
}
@@ -4245,7 +4251,7 @@ bool dp_peer_find_by_id_valid(struct dp_soc *soc, uint16_t peer_id)
* Decrement the peer ref which is taken as part of
* dp_peer_find_by_id if PEER_LOCK_REF_PROTECT is enabled
*/
dp_peer_unref_del_find_by_id(peer);
dp_peer_unref_delete(peer);
return true;
}