From 01c7dd9c4ee1e8bab5c798e45d197c34c64f5666 Mon Sep 17 00:00:00 2001 From: Naveen Rawat Date: Wed, 6 Jan 2016 18:35:53 -0800 Subject: [PATCH] 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 --- core/hdd/src/wlan_hdd_assoc.c | 2 +- core/hdd/src/wlan_hdd_cfg80211.c | 2 +- core/sme/inc/sme_api.h | 3 +-- core/sme/src/common/sme_api.c | 31 ++++++++----------------- core/sme/src/csr/csr_api_roam.c | 34 ++++++++++------------------ core/sme/src/csr/csr_inside_api.h | 9 +------- core/sme/src/csr/csr_neighbor_roam.c | 4 ++-- 7 files changed, 28 insertions(+), 57 deletions(-) diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c index 2f1d820c2116..bb81a878d4b0 100644 --- a/core/hdd/src/wlan_hdd_assoc.c +++ b/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); diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 154f905c9ea3..102c44790c9f 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/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")); } diff --git a/core/sme/inc/sme_api.h b/core/sme/inc/sme_api.h index c1698cf5e592..49850aae7cb2 100644 --- a/core/sme/inc/sme_api.h +++ b/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, diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 0305d0506a10..e2607e99d0c8 100644 --- a/core/sme/src/common/sme_api.c +++ b/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); } /* --------------------------------------------------------------------------- diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 922b80743fe7..9b1e60cf17f9 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/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); diff --git a/core/sme/src/csr/csr_inside_api.h b/core/sme/src/csr/csr_inside_api.h index ab0f12719bca..99414ad2330a 100644 --- a/core/sme/src/csr/csr_inside_api.h +++ b/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 diff --git a/core/sme/src/csr/csr_neighbor_roam.c b/core/sme/src/csr/csr_neighbor_roam.c index 40f282787327..2e8198225330 100644 --- a/core/sme/src/csr/csr_neighbor_roam.c +++ b/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;