qcacmn: Add lock for update ast entry

Add lock protection while update of ast entry for
peer

Change-Id: I0f61add9a06174303b40b017a6f1f2d202f3cf55
CRs-Fixed: 2210301
This commit is contained in:
Chaithanya Garrepalli 2018-03-23 12:20:18 +05:30 • committed by nshrivas
commit 4c7099f001
2 changed files with 7 additions and 3 deletions

View file

@ -317,12 +317,10 @@ static int dp_peer_update_ast_wifi3(struct cdp_soc_t *soc_hdl,
{
int status;
struct dp_soc *soc = (struct dp_soc *)soc_hdl;
qdf_spin_lock_bh(&soc->ast_lock);
status = dp_peer_update_ast(soc,
(struct dp_peer *)peer_hdl,
(struct dp_ast_entry *)ast_entry_hdl,
flags);
qdf_spin_unlock_bh(&soc->ast_lock);
return status;
}

View file

@ -547,6 +547,8 @@ int dp_peer_update_ast(struct dp_soc *soc, struct dp_peer *peer,
int ret = -1;
struct dp_peer *old_peer;
qdf_spin_lock_bh(&soc->ast_lock);
old_peer = ast_entry->peer;
TAILQ_REMOVE(&old_peer->ast_entry_list, ast_entry, ase_list_elem);
@ -563,10 +565,14 @@ int dp_peer_update_ast(struct dp_soc *soc, struct dp_peer *peer,
peer->vdev->osif_vdev,
ast_entry->mac_addr.raw,
peer->mac_addr.raw,
flags))
flags)) {
qdf_spin_unlock_bh(&soc->ast_lock);
return 0;
}
}
qdf_spin_unlock_bh(&soc->ast_lock);
return ret;
}