diff options
| author | bings <bings@codeaurora.org> | 2018-04-03 15:32:00 +0800 |
|---|---|---|
| committer | bings <bings@codeaurora.org> | 2018-04-03 15:34:23 +0800 |
| commit | ed11e63d67f2fb2da5f54038987c25f040bc0b44 (patch) | |
| tree | 6ff3732815f37dc875a2bb96fa5fe7cde79909e4 | |
| parent | 1fd4b69f2cfae2a3109959d40a6796223d6fcd00 (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.c | 6 |
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__); |
