diff --git a/core/mac/src/dph/dph_hash_table.c b/core/mac/src/dph/dph_hash_table.c index 36afa51c8dbc..6ff817c03b5d 100644 --- a/core/mac/src/dph/dph_hash_table.c +++ b/core/mac/src/dph/dph_hash_table.c @@ -282,6 +282,7 @@ tpDphHashNode dph_init_sta_state(tpAniSirGlobal pMac, tSirMacAddr staAddr, #ifdef WLAN_FEATURE_11W pStaDs->last_assoc_received_time = 0; #endif + pStaDs->sta_deletion_in_progress = false; pStaDs->valid = 1; return pStaDs; } @@ -424,6 +425,7 @@ tSirRetStatus dph_delete_hash_entry(tpAniSirGlobal pMac, tSirMacAddr staAddr, #ifdef WLAN_FEATURE_11W ptr->last_assoc_received_time = 0; #endif + ptr->sta_deletion_in_progress = false; ptr->next = 0; } else { /* / Entry not present */ diff --git a/core/mac/src/include/dph_global.h b/core/mac/src/include/dph_global.h index f10e6cba9bad..89bb6e0e85e1 100644 --- a/core/mac/src/include/dph_global.h +++ b/core/mac/src/include/dph_global.h @@ -241,6 +241,7 @@ typedef struct sDphHashNode { uint8_t nss; int8_t del_sta_ctx_rssi; + bool sta_deletion_in_progress; /* * When a station with already an existing dph entry tries to diff --git a/core/mac/src/pe/lim/lim_link_monitoring_algo.c b/core/mac/src/pe/lim/lim_link_monitoring_algo.c index 94b416000f09..923d9a2d4ffd 100644 --- a/core/mac/src/pe/lim/lim_link_monitoring_algo.c +++ b/core/mac/src/pe/lim/lim_link_monitoring_algo.c @@ -290,13 +290,16 @@ lim_trigger_sta_deletion(tpAniSirGlobal mac_ctx, tpDphHashNode sta_ds, if ((sta_ds->mlmStaContext.mlmState == eLIM_MLM_WT_DEL_STA_RSP_STATE) || (sta_ds->mlmStaContext.mlmState == - eLIM_MLM_WT_DEL_BSS_RSP_STATE)) { + eLIM_MLM_WT_DEL_BSS_RSP_STATE) || + sta_ds->sta_deletion_in_progress) { /* Already in the process of deleting context for the peer */ - lim_log(mac_ctx, LOGE, - FL("Deletion is in progress for peer:%pM"), - sta_ds->staAddr); + lim_log(mac_ctx, LOG1, + FL("Deletion is in progress (%d) for peer:%p in mlmState %d"), + sta_ds->sta_deletion_in_progress, sta_ds->staAddr, + sta_ds->mlmStaContext.mlmState); return; } + sta_ds->sta_deletion_in_progress = true; sta_ds->mlmStaContext.disassocReason = eSIR_MAC_DISASSOC_DUE_TO_INACTIVITY_REASON;