aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorLu, Han <han.lu@intel.com>2015-03-27 15:03:57 +0800
committerMark Brown <broonie@kernel.org>2015-03-27 09:25:39 -0700
commit2c0ed6349287a15f7be73bba00e520106087cd1b (patch)
tree7dcc1632aa1ad2496ee5eb94e81f690756084ff6 /sound
parentIntel: ASoC: Add condition check before set param to waves (diff)
downloadlinux-dev-2c0ed6349287a15f7be73bba00e520106087cd1b.tar.xz
linux-dev-2c0ed6349287a15f7be73bba00e520106087cd1b.zip
ASoC: Intel: fix warning reported by static check tool smatch
The smatch tool report warning: ... CHECK sound/soc/intel/sst-haswell-pcm.c sound/soc/intel/sst-haswell-pcm.c:1110 hsw_pcm_probe() error: buffer overflow\ 'hsw_dais' 4 <= 4 sound/soc/intel/sst-haswell-pcm.c:1112 hsw_pcm_probe() error: buffer overflow\ 'hsw_dais' 4 <= 4 ... fix it by use its own struct member for post-process module, rather than sharing unused pcm member. Signed-off-by: Lu, Han <han.lu@intel.com> Acked-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/intel/sst-haswell-pcm.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/sound/soc/intel/sst-haswell-pcm.c b/sound/soc/intel/sst-haswell-pcm.c
index 6c6229ae4a02..31ffc0f0498f 100644
--- a/sound/soc/intel/sst-haswell-pcm.c
+++ b/sound/soc/intel/sst-haswell-pcm.c
@@ -137,6 +137,7 @@ struct hsw_priv_data {
struct device *dev;
enum hsw_pm_state pm_state;
struct snd_soc_card *soc_card;
+ struct sst_module_runtime *runtime_waves; /* sound effect module */
/* page tables */
struct snd_dma_buffer dmab[HSW_PCM_COUNT][2];
@@ -902,13 +903,10 @@ static int hsw_pcm_create_modules(struct hsw_priv_data *pdata)
/* create runtime blocks for module waves */
if (sst_hsw_is_module_loaded(hsw, SST_HSW_MODULE_WAVES)) {
- pcm_data = &pdata->pcm[HSW_PCM_COUNT-1][0];
- pcm_data->runtime = sst_hsw_runtime_module_create(hsw,
- SST_HSW_MODULE_WAVES, pcm_data->persistent_offset);
- if (pcm_data->runtime == NULL)
+ pdata->runtime_waves = sst_hsw_runtime_module_create(hsw,
+ SST_HSW_MODULE_WAVES, 0);
+ if (pdata->runtime_waves == NULL)
goto err;
- pcm_data->persistent_offset =
- pcm_data->runtime->persistent_offset;
}
return 0;
@@ -933,8 +931,7 @@ static void hsw_pcm_free_modules(struct hsw_priv_data *pdata)
sst_hsw_runtime_module_free(pcm_data->runtime);
}
if (sst_hsw_is_module_loaded(hsw, SST_HSW_MODULE_WAVES)) {
- pcm_data = &pdata->pcm[HSW_PCM_COUNT-1][0];
- sst_hsw_runtime_module_free(pcm_data->runtime);
+ sst_hsw_runtime_module_free(pdata->runtime_waves);
}
}