Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 681e2c00 authored by Pragaspathi Thilagaraj's avatar Pragaspathi Thilagaraj Committed by Madan Koyyalamudi
Browse files

qcacld-3.0: Don't proceed with roam synch after disassociation

During roam synch event processing, if ssid mismatch is seen,
then the driver issues disassociate, but still proceeds to
process the roam synch indication and indicates new
connection to upper layer. This causes policy manager api to
increment active session wrongly when actually STA is
disconnected.

Return failure in csr_roam_stop_network() if disassociation is
initiated.

Change-Id: I21ae1c26114e4387517710cd3358f89b7e2432fd
CRs-Fixed: 3210852
parent 65d897bc
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -5028,10 +5028,16 @@ QDF_STATUS csr_roam_stop_network(struct mac_context *mac, uint32_t sessionId,
				ssid_match = csr_is_ssid_equal(
						mac, pSession->pConnectBssDesc,
						bss_desc, pIes);
			if (bss_desc && !ssid_match)
				status = csr_roam_issue_disassociate(mac,
						sessionId, substate, false);
			else if (bss_desc)
			if (bss_desc && !ssid_match) {
				csr_roam_issue_disassociate(mac,
							    sessionId, substate,
							    false);
				status = QDF_STATUS_E_FAILURE;
				qdf_mem_free(pBssConfig);
				return status;
			} else if (bss_desc) {
				/*
				 * In an infra & going to an infra network with
				 * the same SSID.  This calls for a reassoc seq.
@@ -5042,6 +5048,7 @@ QDF_STATUS csr_roam_stop_network(struct mac_context *mac, uint32_t sessionId,
						mac, sessionId, roam_profile,
						bss_desc, pBssConfig, pIes,
						false);
			}
		} else if (bss_desc || CSR_IS_INFRA_AP(roam_profile)) {
			/*
			 * Not in Infra. We can go ahead and set