mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 15:49:17 -04:00
qcacld-3.0: Host roam failed when need hw mode change
On Genoa, when 2G SAP exist, when STA roam from 2G to 5G by LFR2, hardware mode need switch from single MAC mode to dbs mode. Since disconnect current AP happens before reassociate, in hw mode response handler, found original AP disconnected already on host side, then don't reassoc new AP, it's regression of Change-Id: I794c6bf3f749bba9c339fd18b5202d50091b73a7. Fix: In hw mode response handler, don't check connect state of current AP when reassoc new AP. If found disconnect pending during host roaming, don't reassoc. Add debug log when error happens. Change-Id: Id836ac84a4156e9db28f6892c8c9eb5210dfb6e0 CRs-Fixed: 2668869
This commit is contained in:
parent
9a0ed3383c
commit
c87ebb5ca3
1 changed files with 9 additions and 8 deletions
|
|
@ -10389,6 +10389,7 @@ QDF_STATUS csr_roam_lfr2_issue_connect(struct mac_context *mac,
|
|||
qdf_mem_free(cur_roam_profile);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
} else {
|
||||
sme_err("malloc failed");
|
||||
QDF_ASSERT(0);
|
||||
csr_dequeue_command(mac);
|
||||
}
|
||||
|
|
@ -10404,18 +10405,18 @@ QDF_STATUS csr_continue_lfr2_connect(struct mac_context *mac,
|
|||
QDF_STATUS status = QDF_STATUS_E_FAILURE;
|
||||
|
||||
roam_info = qdf_mem_malloc(sizeof(*roam_info));
|
||||
if (!roam_info)
|
||||
if (!roam_info) {
|
||||
sme_err("malloc failed");
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
|
||||
}
|
||||
scan_handle_roam_ap =
|
||||
mac->roam.neighborRoamInfo[session_id].scan_res_lfr2_roam_ap;
|
||||
if (!scan_handle_roam_ap)
|
||||
if (!scan_handle_roam_ap) {
|
||||
sme_err("no roam target ap");
|
||||
goto POST_ROAM_FAILURE;
|
||||
|
||||
if ((mac->roam.roamSession[session_id].connectState ==
|
||||
eCSR_ASSOC_STATE_TYPE_NOT_CONNECTED) ||
|
||||
(mac->roam.roamSession[session_id].connectState ==
|
||||
eCSR_ASSOC_STATE_TYPE_INFRA_DISCONNECTING)) {
|
||||
}
|
||||
if(is_disconnect_pending(mac, session_id)) {
|
||||
sme_err("disconnect pending");
|
||||
goto purge_scan_result;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue