diff options
author | Lu, Han <han.lu@intel.com> | 2015-03-27 15:03:57 +0800 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-03-27 09:25:39 -0700 |
commit | 2c0ed6349287a15f7be73bba00e520106087cd1b (patch) | |
tree | 7dcc1632aa1ad2496ee5eb94e81f690756084ff6 /sound/soc/intel | |
parent | 5d5b275d727753372f0a390b4121738d073f3e94 (diff) | |
download | op-kernel-dev-2c0ed6349287a15f7be73bba00e520106087cd1b.zip op-kernel-dev-2c0ed6349287a15f7be73bba00e520106087cd1b.tar.gz |
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/soc/intel')
-rw-r--r-- | sound/soc/intel/sst-haswell-pcm.c | 13 |
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 6c6229a..31ffc0f 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); } } |