diff options
| author | Abhinav Kumar <abhikuma@codeaurora.org> | 2019-03-04 20:48:34 +0530 |
|---|---|---|
| committer | nshrivas <nshrivas@codeaurora.org> | 2019-03-06 02:34:43 -0800 |
| commit | 52ae50bef6d64076c7830600009cd2bf391e3796 (patch) | |
| tree | 5b319d7476e31938b9e1a59c6ef7ae22062fa232 | |
| parent | 8ab68a4664378fb8f917cd2365e7ed61f0209448 (diff) | |
qcacld-3.0: Allow roam invoke while FASTREASSOC
While handling userspace-directed re-association, driver
checks for flag "supplicant_disabled_roaming" before sending
roam invoke command after connection. Currently, the value of
supplicant_disabled_roaming is getting updated by value comes
through vendor command QCA_WLAN_VENDOR_ATTR_ROAMING_POLICY.
In case if roaming does not get enabled using vendor command
in __wlan_hdd_cfg80211_set_fast_roaming, driver rejects
fast re-association cmd. This leads to roaming failure.
Fix is to allow roam invoke command irrespective of flag
"supplicant_disabled_roaming" and send csr_roam_offload_scan
with reason REASON_SUPPLICANT_DISABLED_ROAMING instead of
REASON_DISCONNECTED while processing FASTREASSOC command.
Change-Id: Iee55fff8dd9445a2fb2b96a244f59a763f207dd5
CRs-Fixed: 2408861
| -rw-r--r-- | core/sme/src/common/sme_api.c | 6 | ||||
| -rw-r--r-- | core/sme/src/csr/csr_neighbor_roam.c | 6 |
2 files changed, 5 insertions, 7 deletions
diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 268a3ff576e7..b64a1d0a1ad3 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -19364,10 +19364,8 @@ QDF_STATUS sme_fast_reassoc(tHalHandle hal, tCsrRoamProfile *profile, return QDF_STATUS_E_FAILURE; } - if (session->pCurRoamProfile->supplicant_disabled_roaming || - session->pCurRoamProfile->driver_disabled_roaming) { - sme_debug("roaming status in Supplicant %d and in driver %d", - session->pCurRoamProfile->supplicant_disabled_roaming, + if (session->pCurRoamProfile->driver_disabled_roaming) { + sme_debug("roaming status in driver %d", session->pCurRoamProfile->driver_disabled_roaming); return QDF_STATUS_E_FAILURE; } diff --git a/core/sme/src/csr/csr_neighbor_roam.c b/core/sme/src/csr/csr_neighbor_roam.c index 92157e7a93d8..fa49518bb945 100644 --- a/core/sme/src/csr/csr_neighbor_roam.c +++ b/core/sme/src/csr/csr_neighbor_roam.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2019 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -144,8 +144,8 @@ QDF_STATUS csr_neighbor_roam_update_fast_roaming_enabled(tpAniSirGlobal mac_ctx, REASON_CONNECT); } else { csr_roam_offload_scan(mac_ctx, session_id, - ROAM_SCAN_OFFLOAD_STOP, - REASON_DISCONNECTED); + ROAM_SCAN_OFFLOAD_STOP, + REASON_SUPPLICANT_DISABLED_ROAMING); } sme_release_global_lock(&mac_ctx->sme); } else { |
