Browse Source

qcacld-3.0: Do not send Assoc failure before initiating disconnect

In Roam invoke failure the SME send Assoc failure to HDD layer and
schedule a disconnect. Assoc failure indicate the disconnection
to supplicant and supplicant send a new connect command, which will
change some state in HDD, and post the command in SME. But during
same time the disconnect from roam invoke failure change the
state of HDD and supplicant to disconnected and SME continue
to connect.
The success is not send to supplicant and no EAPOL exchanges is
started by supplicant which is in disconnected state. This lead to
driver stuck in wait for key state and no SME commands are allowed.

To fix this do not send Assoc failure before initiating disconnect
as disconnect will anyway take care of the cleanup.

Change-Id: Ie6de1de41a9eeed71530f1b2516b01e7839dac82
CRs-Fixed: 2181528
Abhishek Singh 7 years ago
parent
commit
cb101f25b8
1 changed files with 0 additions and 4 deletions
  1. 0 4
      core/sme/src/csr/csr_api_roam.c

+ 0 - 4
core/sme/src/csr/csr_api_roam.c

@@ -21313,10 +21313,6 @@ static QDF_STATUS csr_process_roam_sync_callback(tpAniSirGlobal mac_ctx,
 				eCSR_ROAM_NAPI_OFF, eCSR_ROAM_RESULT_SUCCESS);
 		return status;
 	case SIR_ROAMING_INVOKE_FAIL:
-		csr_roam_call_callback(mac_ctx, session_id, NULL, 0,
-				       eCSR_ROAM_ASSOCIATION_FAILURE,
-				       eCSR_ROAM_RESULT_INVOKE_FAILED);
-
 		/* Userspace roam request failed, disconnect with current AP */
 		sme_debug("LFR3: roam invoke from user-space fail, dis cur AP");
 		csr_roam_disconnect(mac_ctx, session_id,