mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 01:54:09 +08:00
ASoC: Intel: Skylake: Fix possible memory corruption in codec dai dma params
Set required parameters for hdac_ext_dma_params object instead of skl_dma_params. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
4b235c43de
commit
aceb5d20d7
@ -475,7 +475,7 @@ static int skl_link_hw_params(struct snd_pcm_substream *substream,
|
|||||||
struct hdac_ext_bus *ebus = dev_get_drvdata(dai->dev);
|
struct hdac_ext_bus *ebus = dev_get_drvdata(dai->dev);
|
||||||
struct hdac_ext_stream *link_dev;
|
struct hdac_ext_stream *link_dev;
|
||||||
struct snd_soc_pcm_runtime *rtd = snd_pcm_substream_chip(substream);
|
struct snd_soc_pcm_runtime *rtd = snd_pcm_substream_chip(substream);
|
||||||
struct skl_dma_params *dma_params;
|
struct hdac_ext_dma_params *dma_params;
|
||||||
struct snd_soc_dai *codec_dai = rtd->codec_dai;
|
struct snd_soc_dai *codec_dai = rtd->codec_dai;
|
||||||
struct skl_pipe_params p_params = {0};
|
struct skl_pipe_params p_params = {0};
|
||||||
|
|
||||||
@ -487,11 +487,9 @@ static int skl_link_hw_params(struct snd_pcm_substream *substream,
|
|||||||
snd_soc_dai_set_dma_data(dai, substream, (void *)link_dev);
|
snd_soc_dai_set_dma_data(dai, substream, (void *)link_dev);
|
||||||
|
|
||||||
/* set the stream tag in the codec dai dma params */
|
/* set the stream tag in the codec dai dma params */
|
||||||
dma_params = (struct skl_dma_params *)
|
dma_params = snd_soc_dai_get_dma_data(codec_dai, substream);
|
||||||
snd_soc_dai_get_dma_data(codec_dai, substream);
|
|
||||||
if (dma_params)
|
if (dma_params)
|
||||||
dma_params->stream_tag = hdac_stream(link_dev)->stream_tag;
|
dma_params->stream_tag = hdac_stream(link_dev)->stream_tag;
|
||||||
snd_soc_dai_set_dma_data(codec_dai, substream, (void *)dma_params);
|
|
||||||
|
|
||||||
p_params.s_fmt = snd_pcm_format_width(params_format(params));
|
p_params.s_fmt = snd_pcm_format_width(params_format(params));
|
||||||
p_params.ch = params_channels(params);
|
p_params.ch = params_channels(params);
|
||||||
|
Loading…
Reference in New Issue
Block a user