Преглед изворни кода

qcacld-3.0: Remove policy_mgr session in disassoc hdlr

In LFR2 roaming disassociation with old AP happens
immediately after preauth success. But policy_mgr
decrement this entry in association completion handler.
This results in policy_mgr assuming an extra connection
while checking hw mode. policy_mgr session for the
disassociated AP should be removed in disassoc success
response handler.

CRs-Fixed: 2316508
Change-Id: I41db1f5a365d3a510e27d10adcec2a7d765616d5
Rajasekaran Kalidoss пре 6 година
родитељ
комит
54a07c9528
2 измењених фајлова са 24 додато и 1 уклоњено
  1. 17 0
      core/hdd/src/wlan_hdd_assoc.c
  2. 7 1
      core/sme/src/csr/csr_api_roam.c

+ 17 - 0
core/hdd/src/wlan_hdd_assoc.c

@@ -4902,6 +4902,23 @@ hdd_sme_roam_callback(void *pContext, struct csr_roam_info *roam_info,
 			wlan_hdd_sae_callback(adapter, roam_info);
 		break;
 
+	case eCSR_ROAM_ROAMING_START:
+		/*
+		 * For LFR2, Handle roaming start to remove disassociated
+		 * session
+		 */
+		if (roaming_offload_enabled(hdd_ctx))
+			break;
+		if (roamResult == eCSR_ROAM_RESULT_NOT_ASSOCIATED) {
+			hdd_debug("Decrement session of disassociated AP device_mode %d sessionId %d",
+				  adapter->device_mode,
+				  adapter->session_id);
+			policy_mgr_decr_session_set_pcl(hdd_ctx->psoc,
+							adapter->device_mode,
+							adapter->session_id);
+		}
+		break;
+
 	default:
 		break;
 	}

+ 7 - 1
core/sme/src/csr/csr_api_roam.c

@@ -9955,9 +9955,15 @@ void csr_roam_roaming_state_disassoc_rsp_processor(tpAniSirGlobal pMac,
 		qdf_copy_macaddr(&roamInfo->bssid,
 			pNeighborRoamInfo->csrNeighborRoamProfile.BSSIDs.bssid);
 
+		/*
+		 * For LFR2, removal of policy mgr entry for disassociated
+		 * AP is handled in eCSR_ROAM_ROAMING_START.
+		 * eCSR_ROAM_RESULT_NOT_ASSOCIATED is sent to differentiate
+		 * eCSR_ROAM_ROAMING_START sent after FT preauth success
+		 */
 		csr_roam_call_callback(pMac, sessionId, roamInfo, 0,
 				       eCSR_ROAM_ROAMING_START,
-				       eCSR_ROAM_RESULT_NONE);
+				       eCSR_ROAM_RESULT_NOT_ASSOCIATED);
 
 		/*
 		 * Copy the connected profile to apply the same for this