Bladeren bron

qcacld-3.0: Remove unnecessary lock from sme_roam_free_connect_profile

Remove unnecessary acquiring of SME lock in sme_roam_free_connect_profile
since this function does not access any SME structures.

Change-Id: I0ddafc4276ef5028b48fda0ae3ea4e6a0c23245e
CRs-Fixed: 958839
Naveen Rawat 9 jaren geleden
bovenliggende
commit
01c7dd9c4e

+ 1 - 1
core/hdd/src/wlan_hdd_assoc.c

@@ -1480,7 +1480,7 @@ static void hdd_send_re_assoc_event(struct net_device *dev,
 			rspRsnIe, rspRsnLength,
 			pCsrRoamInfo);
 done:
-	sme_roam_free_connect_profile(hal_handle, &roam_profile);
+	sme_roam_free_connect_profile(&roam_profile);
 	if (final_req_ie)
 		kfree(final_req_ie);
 	kfree(rspRsnIe);

+ 1 - 1
core/hdd/src/wlan_hdd_cfg80211.c

@@ -7470,7 +7470,7 @@ struct cfg80211_bss *wlan_hdd_cfg80211_update_bss_db(hdd_adapter_t *pAdapter,
 			hddLog(LOG1,
 				FL("wlan_hdd_cfg80211_inform_bss_frame returned NULL"));
 
-		sme_roam_free_connect_profile(hHal, &roamProfile);
+		sme_roam_free_connect_profile(&roamProfile);
 	} else {
 		hddLog(LOGE, FL("roamProfile.pBssDesc is NULL"));
 	}

+ 1 - 2
core/sme/inc/sme_api.h

@@ -293,8 +293,7 @@ CDF_STATUS sme_roam_get_connect_state(tHalHandle hHal, uint8_t sessionId,
 		eCsrConnectState *pState);
 CDF_STATUS sme_roam_get_connect_profile(tHalHandle hHal, uint8_t sessionId,
 		tCsrRoamConnectedProfile *pProfile);
-CDF_STATUS sme_roam_free_connect_profile(tHalHandle hHal,
-		tCsrRoamConnectedProfile *pProfile);
+void sme_roam_free_connect_profile(tCsrRoamConnectedProfile *profile);
 CDF_STATUS sme_roam_set_pmkid_cache(tHalHandle hHal, uint8_t sessionId,
 		tPmkidCacheInfo *pPMKIDCache,
 		uint32_t numItems,

+ 10 - 21
core/sme/src/common/sme_api.c

@@ -3931,31 +3931,20 @@ CDF_STATUS sme_roam_get_connect_profile(tHalHandle hHal, uint8_t sessionId,
 	return status;
 }
 
-/* ---------------------------------------------------------------------------
-    \fn sme_roam_free_connect_profile
-    \brief a wrapper function to request CSR to free and reinitialize the
-	profile returned previously by csr_roam_get_connect_profile.
-    This is a synchronous call.
-    \param pProfile - pointer to a caller allocated structure
-		      tCsrRoamConnectedProfile
-    \return CDF_STATUS.
-   ---------------------------------------------------------------------------*/
-CDF_STATUS sme_roam_free_connect_profile(tHalHandle hHal,
-					 tCsrRoamConnectedProfile *pProfile)
+/**
+ * sme_roam_free_connect_profile - a wrapper function to request CSR to free and
+ * reinitialize the profile returned previously by csr_roam_get_connect_profile.
+ *
+ * @profile - pointer to a caller allocated structure tCsrRoamConnectedProfile
+ *
+ * Return: none
+ */
+void sme_roam_free_connect_profile(tCsrRoamConnectedProfile *profile)
 {
-	CDF_STATUS status = CDF_STATUS_E_FAILURE;
-	tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
-
 	MTRACE(cdf_trace(CDF_MODULE_ID_SME,
 			 TRACE_CODE_SME_RX_HDD_ROAM_FREE_CONNECTPROFILE,
 			 NO_SESSION, 0));
-	status = sme_acquire_global_lock(&pMac->sme);
-	if (CDF_IS_STATUS_SUCCESS(status)) {
-		status = csr_roam_free_connect_profile(pMac, pProfile);
-		sme_release_global_lock(&pMac->sme);
-	}
-
-	return status;
+	csr_roam_free_connect_profile(profile);
 }
 
 /* ---------------------------------------------------------------------------

+ 12 - 22
core/sme/src/csr/csr_api_roam.c

@@ -1075,21 +1075,14 @@ CDF_STATUS csr_roam_get_connect_profile(tpAniSirGlobal pMac, uint32_t sessionId,
 	return status;
 }
 
-CDF_STATUS csr_roam_free_connect_profile(tpAniSirGlobal pMac,
-					 tCsrRoamConnectedProfile *pProfile)
+void csr_roam_free_connect_profile(tCsrRoamConnectedProfile *profile)
 {
-	CDF_STATUS status = CDF_STATUS_SUCCESS;
-
-	if (pProfile->pBssDesc) {
-		cdf_mem_free(pProfile->pBssDesc);
-	}
-	if (pProfile->pAddIEAssoc) {
-		cdf_mem_free(pProfile->pAddIEAssoc);
-	}
-	cdf_mem_set(pProfile, sizeof(tCsrRoamConnectedProfile), 0);
-
-	pProfile->AuthType = eCSR_AUTH_TYPE_UNKNOWN;
-	return status;
+	if (profile->pBssDesc)
+		cdf_mem_free(profile->pBssDesc);
+	if (profile->pAddIEAssoc)
+		cdf_mem_free(profile->pAddIEAssoc);
+	cdf_mem_set(profile, sizeof(tCsrRoamConnectedProfile), 0);
+	profile->AuthType = eCSR_AUTH_TYPE_UNKNOWN;
 }
 
 static CDF_STATUS csr_roam_free_connected_info(tpAniSirGlobal pMac,
@@ -5759,8 +5752,7 @@ static void csr_roam_process_results_default(tpAniSirGlobal mac_ctx,
 		 * to send down stop BSS later
 		 */
 		csr_free_connect_bss_desc(mac_ctx, session_id);
-		csr_roam_free_connect_profile(mac_ctx,
-			&session->connectedProfile);
+		csr_roam_free_connect_profile(&session->connectedProfile);
 		csr_roam_free_connected_info(mac_ctx, &session->connectedInfo);
 		csr_set_default_dot11_mode(mac_ctx);
 	}
@@ -6003,10 +5995,8 @@ static void csr_roam_process_start_bss_success(tpAniSirGlobal mac_ctx,
 					session_id);
 	}
 	csr_roam_save_connected_bss_desc(mac_ctx, session_id, bss_desc);
-	csr_roam_free_connect_profile(mac_ctx,
-			&session->connectedProfile);
-	csr_roam_free_connected_info(mac_ctx,
-			&session->connectedInfo);
+	csr_roam_free_connect_profile(&session->connectedProfile);
+	csr_roam_free_connected_info(mac_ctx, &session->connectedInfo);
 	if (bss_desc) {
 		csr_roam_save_connected_infomation(mac_ctx, session_id,
 				profile, bss_desc, ies_ptr);
@@ -15091,7 +15081,7 @@ void csr_cleanup_session(tpAniSirGlobal pMac, uint32_t sessionId)
 		sme_ft_close(pMac, sessionId);
 #endif
 		csr_free_connect_bss_desc(pMac, sessionId);
-		csr_roam_free_connect_profile(pMac, &pSession->connectedProfile);
+		csr_roam_free_connect_profile(&pSession->connectedProfile);
 		csr_roam_free_connected_info(pMac, &pSession->connectedInfo);
 		cdf_mc_timer_destroy(&pSession->hTimerRoaming);
 #ifdef FEATURE_WLAN_BTAMP_UT_RF
@@ -15151,7 +15141,7 @@ static void csr_init_session(tpAniSirGlobal pMac, uint32_t sessionId)
 	pSession->pContext = NULL;
 	pSession->connectState = eCSR_ASSOC_STATE_TYPE_NOT_CONNECTED;
 	csr_free_roam_profile(pMac, sessionId);
-	csr_roam_free_connect_profile(pMac, &pSession->connectedProfile);
+	csr_roam_free_connect_profile(&pSession->connectedProfile);
 	csr_roam_free_connected_info(pMac, &pSession->connectedInfo);
 	csr_free_connect_bss_desc(pMac, sessionId);
 	csr_scan_enable(pMac);

+ 1 - 8
core/sme/src/csr/csr_inside_api.h

@@ -836,14 +836,7 @@ CDF_STATUS csr_roam_get_connect_profile(tpAniSirGlobal pMac, uint32_t sessionId,
 CDF_STATUS csr_roam_get_connect_state(tpAniSirGlobal pMac, uint32_t sessionId,
 				      eCsrConnectState *pState);
 
-/* ---------------------------------------------------------------------------
-    \fn csr_roam_free_connect_profile
-    \brief To free and reinitialize the profile return previous by csr_roam_get_connect_profile.
-    \param pProfile - pointer to a caller allocated structure tCsrRoamConnectedProfile
-    \return CDF_STATUS.
-   -------------------------------------------------------------------------------*/
-CDF_STATUS csr_roam_free_connect_profile(tpAniSirGlobal pMac,
-					 tCsrRoamConnectedProfile *pProfile);
+void csr_roam_free_connect_profile(tCsrRoamConnectedProfile *profile);
 
 /* ---------------------------------------------------------------------------
     \fn csr_apply_channel_and_power_list

+ 2 - 2
core/sme/src/csr/csr_neighbor_roam.c

@@ -2272,7 +2272,7 @@ CDF_STATUS csr_neighbor_roam_indicate_disconnect(tpAniSirGlobal pMac,
 	 * Free the current previous profile and move
 	 * the current profile to prev profile.
 	 */
-	csr_roam_free_connect_profile(pMac, pPrevProfile);
+	csr_roam_free_connect_profile(pPrevProfile);
 	csr_roam_copy_connect_profile(pMac, sessionId, pPrevProfile);
 	/*
 	 * clear the roaming parameters that are per connection.
@@ -2890,7 +2890,7 @@ void csr_neighbor_roam_close(tpAniSirGlobal pMac, uint8_t sessionId)
 
 	/* Free the profile.. */
 	csr_release_profile(pMac, &pNeighborRoamInfo->csrNeighborRoamProfile);
-	csr_roam_free_connect_profile(pMac, &pNeighborRoamInfo->prevConnProfile);
+	csr_roam_free_connect_profile(&pNeighborRoamInfo->prevConnProfile);
 #ifdef WLAN_FEATURE_VOWIFI_11R
 	pNeighborRoamInfo->FTRoamInfo.currentNeighborRptRetryNum = 0;
 	pNeighborRoamInfo->FTRoamInfo.numBssFromNeighborReport = 0;