diff options
| author | Nachiket Kukade <nkukade@codeaurora.org> | 2018-02-14 18:01:48 +0530 |
|---|---|---|
| committer | snandini <snandini@codeaurora.org> | 2018-02-22 14:56:02 -0800 |
| commit | f496b7c2d764a83800248a86165ef22dfe2d5dff (patch) | |
| tree | a9e1969afe9a45b36f3ad6a1b567b94d6c3207f4 | |
| parent | 83f7d146bad03c239260b6860224da75238ed471 (diff) | |
qcacld-3.0: Schedule ROC dequeue work when roam connection fails
Remain on Channel requests are queued if any connection is in
progress. The work that dequeues and executes them is scheduled
after the connection is successful. In case where a roaming
is unsuccessful, the work is never scheduled stalling the p2p
listen operation in the upper layer.
Schedule ROC dequeue work when roam abort is received.
Change-Id: I80dc817760e092ec7f41d60a40593ec62bea6145
CRs-Fixed: 2189893
| -rw-r--r-- | core/hdd/src/wlan_hdd_assoc.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c index 76f3bb2b8612..95bc1db75312 100644 --- a/core/hdd/src/wlan_hdd_assoc.c +++ b/core/hdd/src/wlan_hdd_assoc.c @@ -4894,6 +4894,7 @@ hdd_sme_roam_callback(void *pContext, tCsrRoamInfo *pRoamInfo, uint32_t roamId, hdd_station_ctx_t *pHddStaCtx = NULL; QDF_STATUS status = QDF_STATUS_SUCCESS; struct cfg80211_bss *bss_status; + hdd_context_t *pHddCtx; if (eCSR_ROAM_UPDATE_SCAN_RESULT != roamStatus) hdd_debug("CSR Callback: status= %d result= %d roamID=%d", @@ -4906,6 +4907,7 @@ hdd_sme_roam_callback(void *pContext, tCsrRoamInfo *pRoamInfo, uint32_t roamId, pWextState = WLAN_HDD_GET_WEXT_STATE_PTR(pAdapter); pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter); + pHddCtx = WLAN_HDD_GET_CTX(pAdapter); /* Omitting eCSR_ROAM_UPDATE_SCAN_RESULT as this is too frequent */ if (eCSR_ROAM_UPDATE_SCAN_RESULT != roamStatus) @@ -5243,6 +5245,7 @@ hdd_sme_roam_callback(void *pContext, tCsrRoamInfo *pRoamInfo, uint32_t roamId, pAdapter->roam_ho_fail = false; pHddStaCtx->ft_carrier_on = false; complete(&pAdapter->roaming_comp_var); + schedule_delayed_work(&pHddCtx->roc_req_work, 0); break; default: |
