Browse Source

qcacld-3.0: Fix scan failure issue

If number of BSSID tried by CSR reach max bss limit for the
connect request, no more AP are tried and failure is sent to hdd.

But as PE session ref count is 1, assoc completion is sent instead
of assoc failure and thus HDD does not send the connect failure to
upper layer. Also the HDD state remains in
"eConnectionState_Connecting" state and is not moved to
eConnectionState_NotConnected state and thus scan fails.

To fix this decrease the PE session ref count if number of BSSID
tried by csr reaches max BSS limit for the connect request.

Change-Id: I43ea4fa67d968ee648c47c2d52c0dd98d67f051d
CRs-fixed: 2027306
Abhishek Singh 8 năm trước cách đây
mục cha
commit
6e4621c725
1 tập tin đã thay đổi với 9 bổ sung0 xóa
  1. 9 0
      core/sme/src/csr/csr_api_roam.c

+ 9 - 0
core/sme/src/csr/csr_api_roam.c

@@ -8879,7 +8879,16 @@ static void csr_roam_join_rsp_processor(tpAniSirGlobal pMac,
 					QDF_TRACE_LEVEL_ERROR,
 					FL("disconnect is pending, complete roam"));
 
+			if (session_ptr->bRefAssocStartCnt)
+				session_ptr->bRefAssocStartCnt--;
+
 			session_ptr->join_bssid_count = 0;
+
+			csr_roam_call_callback(pMac, session_ptr->sessionId,
+				NULL, roamId,
+				eCSR_ROAM_ASSOCIATION_COMPLETION,
+				eCSR_ROAM_RESULT_NOT_ASSOCIATED);
+
 			csr_roam_complete(pMac, eCsrNothingToJoin, NULL,
 					pSmeJoinRsp->sessionId);
 		}