diff options
| author | Abhinav Kumar <abhikuma@codeaurora.org> | 2019-03-18 19:04:41 +0530 |
|---|---|---|
| committer | nshrivas <nshrivas@codeaurora.org> | 2019-03-19 02:36:56 -0700 |
| commit | fbcff74a191a580ea93dec18352b4cadbd6a2764 (patch) | |
| tree | 3f7c71c4e3db432e331a7c9493fd10e9c8cb43f9 | |
| parent | 7495e01cc356dd8071f6ecfb2eceb75fe1a925ee (diff) | |
qcacld-3.0: Fix false alarm scan reject issue
Currently, the scan is rejected if roaming in progress on STA or
if a client of SAP is in the middle of WPS/EAPOL exchange. And
it uses last_scan_reject_timestamp and reset scan_reject_cnt to
avoid scan stuck issue. last_scan_reject_timestamp and
scan_reject_cnt reset when the next scan issues successfully.
If:
1\ Scan happens and roaming is in progress on STA or client of SAP is
in the middle of the WPS/EAPOL exchange. Initialized
last_scan_reject_timestamp and reset scan_reject_cnt;
2\ Maybe no scan happens for a long time;
3\ scan happens but unfortunately, a connection is in progress again.
Then false alarm may happen because the time has already expired and
scan_reject_cnt >= 15.
Reset scan reject params after successful set key and successful roam.
Change-Id: I1197e66483e3bc8da38d6bcbc8b8c32b193ef6c9
CRs-Fixed: 2418658
| -rw-r--r-- | core/hdd/src/wlan_hdd_assoc.c | 3 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_main.c | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c index 17cf8f229c43..d233499316a0 100644 --- a/core/hdd/src/wlan_hdd_assoc.c +++ b/core/hdd/src/wlan_hdd_assoc.c @@ -1947,6 +1947,9 @@ QDF_STATUS hdd_change_peer_state(hdd_adapter_t *pAdapter, #endif if (sta_state == OL_TXRX_PEER_STATE_AUTH) { + /* Reset scan reject params on successful set key */ + hdd_debug("Reset scan reject params"); + hdd_init_scan_reject_params(pAdapter->pHddCtx); #ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL /* make sure event is reset */ INIT_COMPLETION(pAdapter->sta_authorized_event); diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 3dc1d087275c..7ecd3b707de9 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -13365,6 +13365,11 @@ void hdd_set_roaming_in_progress(bool value) hdd_ctx->roaming_in_progress = value; hdd_debug("Roaming in Progress set to %d", value); + if (!hdd_ctx->roaming_in_progress) { + /* Reset scan reject params on successful roam complete */ + hdd_debug("Reset scan reject params"); + hdd_init_scan_reject_params(hdd_ctx); + } } /** |
