linux/sound/soc/fsl
Xiyu Yang 36124fb19f
ASoC: fsl_asrc_dma: Fix dma_chan leak when config DMA channel failed
fsl_asrc_dma_hw_params() invokes dma_request_channel() or
fsl_asrc_get_dma_channel(), which returns a reference of the specified
dma_chan object to "pair->dma_chan[dir]" with increased refcnt.

The reference counting issue happens in one exception handling path of
fsl_asrc_dma_hw_params(). When config DMA channel failed for Back-End,
the function forgets to decrease the refcnt increased by
dma_request_channel() or fsl_asrc_get_dma_channel(), causing a refcnt
leak.

Fix this issue by calling dma_release_channel() when config DMA channel
failed.

Signed-off-by: Xiyu Yang <xiyuyang19@fudan.edu.cn>
Signed-off-by: Xin Tan <tanxin.ctf@gmail.com>
Link: https://lore.kernel.org/r/1590415966-52416-1-git-send-email-xiyuyang19@fudan.edu.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-05-29 13:30:07 +01:00
..
efika-audio-fabric.c ASoC: fsl: efika-audio-fabric: use modern dai_link style 2019-06-06 21:41:08 +01:00
eukrea-tlv320.c ASoC: fsl: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:36 +00:00
fsl_asrc_common.h ASoC: fsl_asrc: Move common definition to fsl_asrc_common 2020-04-21 16:34:09 +01:00
fsl_asrc_dma.c ASoC: fsl_asrc_dma: Fix dma_chan leak when config DMA channel failed 2020-05-29 13:30:07 +01:00
fsl_asrc.c ASoC: fsl_asrc: Merge suspend/resume function to runtime_suspend/resume 2020-05-25 15:31:11 +01:00
fsl_asrc.h ASoC: fsl_asrc: Move common definition to fsl_asrc_common 2020-04-21 16:34:09 +01:00
fsl_audmix.c ASoC: fsl: imx-audmix: Fix unused assignment to variable 'ret' 2020-05-25 15:31:10 +01:00
fsl_audmix.h ASoC: fsl_audmix: Add spin lock to protect tdms 2019-11-11 13:01:37 +00:00
fsl_dma.c ASoC: fsl: Drop superfluous ioctl PCM ops 2019-12-11 15:56:42 +00:00
fsl_dma.h ASoC: fsl-dma: Switch to SPDX identifier 2019-04-08 13:51:01 +07:00
fsl_easrc.c ASoC: fsl_easrc: mark PM functions __maybe_unused 2020-04-29 17:21:32 +01:00
fsl_easrc.h ASoC: fsl_easrc: Add EASRC ASoC CPU DAI drivers 2020-04-21 16:34:11 +01:00
fsl_esai.c ASoC: fsl: use snd_soc_xxx_active() 2020-05-18 16:15:08 +01:00
fsl_esai.h ASoC: fsl_esai: Switch to SPDX identifier 2018-05-03 10:29:05 +09:00
fsl_micfil.c ASoC: fsl_micfil: Do not pass irq numbers in comments 2020-05-19 14:18:52 +01:00
fsl_micfil.h ASoC: Add MICFIL SoC Digital Audio Interface driver. 2019-01-07 17:00:55 +00:00
fsl_mqs.c ASoC: fsl_mqs: Move static keyword to the front of declarations 2019-10-14 12:57:59 +01:00
fsl_sai.c ASoC: fsl_sai: Fix exiting path on probing failure 2020-02-06 15:52:50 +00:00
fsl_sai.h ASoC: fsl_sai: Fix noise when using EDMA 2019-09-17 16:56:19 +01:00
fsl_spdif.c ASoC: fsl: use snd_soc_xxx_active() 2020-05-18 16:15:08 +01:00
fsl_spdif.h ASoC: fsl_spdif: fix TXCLK_DF mask 2019-02-18 17:41:55 +00:00
fsl_ssi_dbg.c ASoC: fsl: no need to check return value of debugfs_create functions 2019-06-14 16:37:48 +01:00
fsl_ssi.c ASoC: fsl: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:36 +00:00
fsl_ssi.h ASoC: fsl: no need to check return value of debugfs_create functions 2019-06-14 16:37:48 +01:00
fsl_utils.c ASoC: fsl: mpc8610_hpcd/p1022_ds/p1022_rdk: use modern dai_link style 2019-06-06 21:42:35 +01:00
fsl_utils.h ASoC: fsl_utils: Switch to SPDX identifier 2018-07-24 16:59:03 +01:00
fsl-asoc-card.c ASoC: fsl-asoc-card: Support new property fsl, asrc-format 2020-04-21 16:34:07 +01:00
imx-audmix.c ASoC: fsl: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:36 +00:00
imx-audmux.c Merge branch 'asoc-5.3' into asoc-5.4 2019-08-20 18:28:43 +01:00
imx-audmux.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
imx-es8328.c ASoC: fsl: imx-es8328: consider CPU-Platform possibility 2019-06-28 15:11:38 +01:00
imx-mc13783.c ASoC: fsl: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:36 +00:00
imx-pcm-dma.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
imx-pcm-fiq.c ASoC: fsl: Drop superfluous ioctl PCM ops 2019-12-11 15:56:42 +00:00
imx-pcm.h ASoC: imx-pcm: Switch to SPDX identifier 2019-04-08 13:47:44 +07:00
imx-sgtl5000.c ASoC: fsl: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:36 +00:00
imx-spdif.c ASoC: fsl: imx-spdif: consider CPU-Platform possibility 2019-06-28 15:12:19 +01:00
imx-ssi.c ASoC: soc-core: remove bus_control 2020-01-21 17:07:08 +00:00
imx-ssi.h ASoC: imx-ssi: Switch to SPDX identifier 2019-04-08 13:53:35 +07:00
Kconfig ASoC: fsl_easrc: Add EASRC ASoC CPU DAI drivers 2020-04-21 16:34:11 +01:00
Makefile ASoC: fsl_easrc: Add EASRC ASoC CPU DAI drivers 2020-04-21 16:34:11 +01:00
mpc5200_dma.c ASoC: fsl: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:36 +00:00
mpc5200_dma.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mpc5200_psc_ac97.c ASoC: soc-core: remove bus_control 2020-01-21 17:07:08 +00:00
mpc5200_psc_i2s.c ASoC: fsl: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:36 +00:00
mpc8610_hpcd.c ASoC: fsl: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:36 +00:00
mx27vis-aic32x4.c ASoC: fsl: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:36 +00:00
p1022_ds.c ASoC: fsl: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:36 +00:00
p1022_rdk.c ASoC: fsl: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:36 +00:00
pcm030-audio-fabric.c ASoC: fsl: pcm030-audio-fabric: use modern dai_link style 2019-06-06 21:43:43 +01:00
phycore-ac97.c ASoC: fsl: phycore-ac97: use modern dai_link style 2019-06-06 21:41:47 +01:00
wm1133-ev1.c ASoC: fsl: use asoc_rtd_to_cpu() / asoc_rtd_to_codec() macro for DAI pointer 2020-03-27 14:44:36 +00:00