From 4c7099f001c90f4353e06387eea2b4ffb34d8e28 Mon Sep 17 00:00:00 2001 From: Chaithanya Garrepalli Date: Fri, 23 Mar 2018 12:20:18 +0530 Subject: [PATCH] qcacmn: Add lock for update ast entry Add lock protection while update of ast entry for peer Change-Id: I0f61add9a06174303b40b017a6f1f2d202f3cf55 CRs-Fixed: 2210301 --- dp/wifi3.0/dp_main.c | 2 -- dp/wifi3.0/dp_peer.c | 8 +++++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index a21bdfd2adfb..00ea18de93ac 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -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; } diff --git a/dp/wifi3.0/dp_peer.c b/dp/wifi3.0/dp_peer.c index ff1fdc85a14a..40baa0761341 100644 --- a/dp/wifi3.0/dp_peer.c +++ b/dp/wifi3.0/dp_peer.c @@ -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; }