qcacld-3.0: Race condition handling for roam during disconnect
Disconnect cmd received from supplicant, at the same time roam start event received from FW.This results in conetxt switch in scheduler thread and leads to disconnection in progress variable could not set. Roam sync events SIR_ROAMING_DEREGISTER_STA and SIR_ROAM_SYNCH_PROPAGATION are received one after another. Here again supplicant thread context resumes resulting in csr roam profile cleanup.Later on when scheuler thread resumes back it result in instability while trying to access roam profile object. Fix is to add check for current roam state using mlme component. check for current state is ROAM_RSO_STOPPED during both SIR_ROAMING_DEREGISTER_STA and SIR_ROAM_SYNCH_PROPAGATION events. Change-Id: Id0ea18a33dfef3d4e9a4003da33fc7172cf58e85 CRs-Fixed: 2626474
This commit is contained in:

committed by
nshrivas

orang tua
b7c2985a3b
melakukan
6c66fc7915
@@ -21191,6 +21191,7 @@ static QDF_STATUS csr_process_roam_sync_callback(struct mac_context *mac_ctx,
|
||||
csr_roam_roaming_offload_timer_action(mac_ctx,
|
||||
0, session_id, ROAMING_OFFLOAD_TIMER_STOP);
|
||||
if (session->discon_in_progress ||
|
||||
MLME_IS_ROAM_STATE_STOPPED(mac_ctx->psoc, session_id) ||
|
||||
!CSR_IS_ROAM_JOINED(mac_ctx, session_id)) {
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
|
||||
FL("LFR3: Session not in connected state or disconnect is in progress %d"),
|
||||
|
Reference in New Issue
Block a user