From 32b1bfcbe0efa66d17221e6658011d97a64ca67d Mon Sep 17 00:00:00 2001 From: Liangwei Dong Date: Thu, 16 Aug 2018 03:03:58 -0400 Subject: [PATCH] qcacld-3.0: Release sap_ctx for DFS event handling Do sap_ctx release for all DFS "Ignore" case. Otherwise, the ref count may mismatch. Change-Id: Ib3d7c416ec3942f4d0317825fa504bc2b5abd968 CRs-Fixed: 2297787 --- core/sap/src/sap_api_link_cntl.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/core/sap/src/sap_api_link_cntl.c b/core/sap/src/sap_api_link_cntl.c index 911c92fe09cb..14aba67262f4 100644 --- a/core/sap/src/sap_api_link_cntl.c +++ b/core/sap/src/sap_api_link_cntl.c @@ -890,17 +890,17 @@ wlansap_roam_callback(void *ctx, struct csr_roam_info *csr_roam_info, if (sta_sap_scc_on_dfs_chan) { QDF_TRACE(QDF_MODULE_ID_SAP, - QDF_TRACE_LEVEL_INFO_HIGH, + QDF_TRACE_LEVEL_DEBUG, FL("Ignore the Radar indication")); - break; + goto EXIT; } if (sap_ctx->fsm_state != SAP_STARTED && sap_ctx->fsm_state != SAP_DFS_CAC_WAIT) { - QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH, + QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_DEBUG, FL("Ignore Radar event in sap state %d"), sap_ctx->fsm_state); - break; + goto EXIT; } chan_state = wlan_reg_get_channel_state( @@ -909,13 +909,13 @@ wlansap_roam_callback(void *ctx, struct csr_roam_info *csr_roam_info, QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_DEBUG, "Ignore Radar event for sap ch %d state %d", sap_ctx->channel, chan_state); - return 0; + goto EXIT; } if (sap_ctx->is_pre_cac_on) { - QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_MED, - FL("sapdfs: Radar detect on pre cac:%d"), - sap_ctx->sessionId); + QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_DEBUG, + FL("sapdfs: Radar detect on pre cac:%d"), + sap_ctx->sessionId); if (!sap_ctx->dfs_cac_offload) { qdf_mc_timer_stop( &mac_ctx->sap.SapDfsInfo.sap_dfs_cac_timer); @@ -947,7 +947,7 @@ wlansap_roam_callback(void *ctx, struct csr_roam_info *csr_roam_info, if (sap_ctx->vendor_acs_dfs_lte_enabled && !mac_ctx->sap.SapDfsInfo.target_channel) { /* Return from here, processing will be done later */ - return 0; + goto EXIT; } if (mac_ctx->sap.SapDfsInfo.target_channel != 0) { mac_ctx->sap.SapDfsInfo.cac_state = @@ -1235,6 +1235,7 @@ wlansap_roam_callback(void *ctx, struct csr_roam_info *csr_roam_info, roam_result); break; } +EXIT: wlansap_context_put(sap_ctx); return qdf_ret_status; }