mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 22:40:54 -04:00
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
This commit is contained in:
parent
65d897bce7
commit
681e2c002a
1 changed files with 11 additions and 4 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue