mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 06:03:36 -04:00
qcacld-3.0: Replace cdp peer_find_by_addr by get_ref_by_addr
Change the existing cdp_peer_find_by_addr by calls to cdp_peer_get_ref_by_addr and cdp_peer_release_ref. The new APIs make sure that the peer is valid as long as the peer reference is not released (call to cdp_peer_release_ref) Change-Id: Ibde9944a9721e5dcf0f7838058c229539efae7e4 CRs-Fixed: 2139801
This commit is contained in:
parent
b7bec723c3
commit
c4c222535f
3 changed files with 17 additions and 6 deletions
|
|
@ -1676,7 +1676,8 @@ static void lim_process_addba_req(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info,
|
|||
status, frame_len);
|
||||
}
|
||||
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, mac_hdr->sa, &peer_id);
|
||||
peer = cdp_peer_get_ref_by_addr(soc, pdev, mac_hdr->sa, &peer_id,
|
||||
PEER_DEBUG_ID_WMA_ADDBA_REQ);
|
||||
if (!peer) {
|
||||
pe_err("PEER [%pM] not found", mac_hdr->sa);
|
||||
goto error;
|
||||
|
|
@ -1689,6 +1690,8 @@ static void lim_process_addba_req(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info,
|
|||
addba_req->addba_param_set.buff_size,
|
||||
addba_req->ba_start_seq_ctrl.ssn);
|
||||
|
||||
cdp_peer_release_ref(soc, peer, PEER_DEBUG_ID_WMA_ADDBA_REQ);
|
||||
|
||||
if (QDF_STATUS_SUCCESS == qdf_status) {
|
||||
lim_send_addba_response_frame(mac_ctx, mac_hdr->sa,
|
||||
addba_req->addba_param_set.tid, session);
|
||||
|
|
@ -1755,7 +1758,8 @@ static void lim_process_delba_req(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info,
|
|||
status, frame_len);
|
||||
}
|
||||
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, mac_hdr->sa, &peer_id);
|
||||
peer = cdp_peer_get_ref_by_addr(soc, pdev, mac_hdr->sa, &peer_id,
|
||||
PEER_DEBUG_ID_WMA_DELBA_REQ);
|
||||
if (!peer) {
|
||||
pe_err("PEER [%pM] not found", mac_hdr->sa);
|
||||
goto error;
|
||||
|
|
@ -1764,6 +1768,8 @@ static void lim_process_delba_req(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info,
|
|||
qdf_status = cdp_delba_process(soc, peer,
|
||||
delba_req->delba_param_set.tid, delba_req->Reason.code);
|
||||
|
||||
cdp_peer_release_ref(soc, peer, PEER_DEBUG_ID_WMA_DELBA_REQ);
|
||||
|
||||
if (QDF_STATUS_SUCCESS != qdf_status)
|
||||
pe_err("Failed to process delba request");
|
||||
|
||||
|
|
|
|||
|
|
@ -4691,7 +4691,8 @@ QDF_STATUS lim_send_addba_response_frame(tpAniSirGlobal mac_ctx,
|
|||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, peer_mac, &peer_id);
|
||||
peer = cdp_peer_get_ref_by_addr(soc, pdev, peer_mac, &peer_id,
|
||||
PEER_DEBUG_ID_LIM_SEND_ADDBA_RESP);
|
||||
if (!peer) {
|
||||
pe_err("PEER [%pM] not found", peer_mac);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
|
@ -4700,6 +4701,7 @@ QDF_STATUS lim_send_addba_response_frame(tpAniSirGlobal mac_ctx,
|
|||
cdp_addba_responsesetup(soc, peer, tid, &dialog_token,
|
||||
&status_code, &buff_size, &batimeout);
|
||||
|
||||
cdp_peer_release_ref(soc, peer, PEER_DEBUG_ID_LIM_SEND_ADDBA_RESP);
|
||||
qdf_mem_set((uint8_t *) &frm, sizeof(frm), 0);
|
||||
frm.Category.category = SIR_MAC_ACTION_BLKACK;
|
||||
frm.Action.action = SIR_MAC_ADDBA_RSP;
|
||||
|
|
|
|||
|
|
@ -3447,7 +3447,7 @@ static bool wma_is_pkt_drop_candidate(tp_wma_handle wma_handle,
|
|||
uint8_t *peer_addr, uint8_t *bssid,
|
||||
uint8_t subtype)
|
||||
{
|
||||
void *peer;
|
||||
void *peer = NULL;
|
||||
struct cdp_pdev *pdev_ctx;
|
||||
uint8_t peer_id;
|
||||
bool should_drop = false;
|
||||
|
|
@ -3481,8 +3481,8 @@ static bool wma_is_pkt_drop_candidate(tp_wma_handle wma_handle,
|
|||
goto end;
|
||||
}
|
||||
|
||||
peer = cdp_peer_find_by_addr(soc, pdev_ctx,
|
||||
peer_addr, &peer_id);
|
||||
peer = cdp_peer_get_ref_by_addr(soc, pdev_ctx, peer_addr, &peer_id,
|
||||
PEER_DEBUG_ID_WMA_PKT_DROP);
|
||||
if (!peer) {
|
||||
if (IEEE80211_FC0_SUBTYPE_ASSOC_REQ != subtype) {
|
||||
WMA_LOGI(
|
||||
|
|
@ -3547,6 +3547,9 @@ static bool wma_is_pkt_drop_candidate(tp_wma_handle wma_handle,
|
|||
}
|
||||
|
||||
end:
|
||||
if (peer)
|
||||
cdp_peer_release_ref(soc, peer, PEER_DEBUG_ID_WMA_PKT_DROP);
|
||||
|
||||
return should_drop;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue