From 60b1d03a3b110e98c2d494312748cec401331482 Mon Sep 17 00:00:00 2001 From: Jeevan Kukkalli Date: Fri, 18 Sep 2020 12:25:05 +0530 Subject: [PATCH] qcacmn: Delete self ast entry during peer tear down Delete self ast entry along with other ast entries belonging to peer during peer tear down Change-Id: I08373929b7e510d79cd677b12f3ee897c1c6790b CRs-Fixed: 2776743 --- dp/wifi3.0/dp_peer.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/dp/wifi3.0/dp_peer.h b/dp/wifi3.0/dp_peer.h index 0920af0586..1a14d47d5e 100644 --- a/dp/wifi3.0/dp_peer.h +++ b/dp/wifi3.0/dp_peer.h @@ -823,10 +823,19 @@ static inline void dp_peer_delete_ast_entries(struct dp_soc *soc, { struct dp_ast_entry *ast_entry, *temp_ast_entry; + /* + * Delete peer self ast entry. This is done to handle scenarios + * where peer is freed before peer map is received(for ex in case + * of auth disallow due to ACL) in such cases self ast is not added + * to peer->ast_list. + */ + if (peer->self_ast_entry) { + dp_peer_del_ast(soc, peer->self_ast_entry); + peer->self_ast_entry = NULL; + } + DP_PEER_ITERATE_ASE_LIST(peer, ast_entry, temp_ast_entry) dp_peer_del_ast(soc, ast_entry); - - peer->self_ast_entry = NULL; } #else static inline void dp_peer_delete_ast_entries(struct dp_soc *soc,