summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbings <bings@codeaurora.org>2018-04-03 15:32:00 +0800
committerbings <bings@codeaurora.org>2018-04-03 15:34:23 +0800
commited11e63d67f2fb2da5f54038987c25f040bc0b44 (patch)
tree6ff3732815f37dc875a2bb96fa5fe7cde79909e4
parent1fd4b69f2cfae2a3109959d40a6796223d6fcd00 (diff)
qcacld-2.0: Check numbin5radars before dfs_b5radars
It is valid for dfs->dfs_rinfo.rn_numbin5radars to be 0. When dfs->dfs_rinfo.rn_numbin5radars is 0, dfs->dfs_b5radars is NULL. Check numbin5radars before dfs_b5radars, otherwise dfs delayline is not cleaned up. Change-Id: I0aba9d2357672e2c5bc6c5c3857cb06194381e2f CRs-Fixed: 2216351
-rw-r--r--CORE/SERVICES/DFS/src/dfs_init.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/CORE/SERVICES/DFS/src/dfs_init.c b/CORE/SERVICES/DFS/src/dfs_init.c
index 445027bc4f6d..5dc324c50571 100644
--- a/CORE/SERVICES/DFS/src/dfs_init.c
+++ b/CORE/SERVICES/DFS/src/dfs_init.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002-2014, 2016-2017 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2002-2014, 2016-2018 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -90,7 +90,7 @@ void dfs_reset_alldelaylines(struct ath_dfs *dfs)
return;
}
- if (dfs->dfs_b5radars == NULL) {
+ if (dfs->dfs_rinfo.rn_numbin5radars && (dfs->dfs_b5radars == NULL)) {
VOS_TRACE(VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_ERROR,
"%s[%d]: pl==NULL, b5radars=%pK", __func__, __LINE__, dfs->dfs_b5radars);
return;
@@ -455,7 +455,7 @@ int dfs_init_radar_filters(struct ieee80211com *ic,
dfs->dfs_b5radars = (struct dfs_bin5radars *)OS_MALLOC(NULL,
numb5radars * sizeof(struct dfs_bin5radars), GFP_KERNEL);
- if (dfs->dfs_b5radars == NULL) {
+ if (numb5radars && (dfs->dfs_b5radars == NULL)) {
DFS_DPRINTK(dfs, ATH_DEBUG_DFS,
"%s: cannot allocate memory for bin5 radars",
__func__);