linux/sound/soc
Thomas Hebb 5c6679b5cb
ASoC: dapm: remove widget from dirty list on free
A widget's "dirty" list_head, much like its "list" list_head, eventually
chains back to a list_head on the snd_soc_card itself. This means that
the list can stick around even after the widget (or all widgets) have
been freed. Currently, however, widgets that are in the dirty list when
freed remain there, corrupting the entire list and leading to memory
errors and undefined behavior when the list is next accessed or
modified.

I encountered this issue when a component failed to probe relatively
late in snd_soc_bind_card(), causing it to bail out and call
soc_cleanup_card_resources(), which eventually called
snd_soc_dapm_free() with widgets that were still dirty from when they'd
been added.

Fixes: db432b414e ("ASoC: Do DAPM power checks only for widgets changed since last run")
Cc: stable@vger.kernel.org
Signed-off-by: Thomas Hebb <tommyhebb@gmail.com>
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/f8b5f031d50122bf1a9bfc9cae046badf4a7a31a.1607822410.git.tommyhebb@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-12-15 13:29:01 +00:00
..
adi ASoc: adi: Kconfig: Remove depends on for ADI reference designs 2020-11-17 17:08:42 +00:00
amd ASoC: amd: change clk_get() to devm_clk_get() and add missed checks 2020-12-08 17:06:36 +00:00
atmel ASoC: atmel: mchp-spdifrx needs COMMON_CLK 2020-12-04 23:26:34 +00:00
au1x
bcm ASoC: bcm2835-i2s: remove unneeded semicolon 2020-11-02 15:53:22 +00:00
cirrus
codecs ASoC: rt1015p: delay 300ms after SDB pulling high for calibration 2020-12-11 13:22:18 +00:00
dwc
fsl ASoC: fsl: Add imx-hdmi machine driver 2020-12-08 14:20:35 +00:00
generic ASoC: Fix 7/8 spaces indentation in Kconfig 2020-11-17 17:08:45 +00:00
hisilicon
img
intel ASoC: Intel: fix error code cnl_set_dsp_D0() 2020-12-14 17:29:59 +00:00
jz4740 ASoC: jz4740-i2s: Remove manual DMA peripheral ID assignment 2020-10-26 18:37:01 +00:00
kirkwood ASoC: kirkwood: armada-370-db: mark OF related data as maybe unused 2020-11-26 13:07:04 +00:00
mediatek ASoC: mediatek: mt8183: delete some unreachable code 2020-12-11 13:23:02 +00:00
meson ASoC: meson: t9015: mark OF related data as maybe unused 2020-11-26 13:07:05 +00:00
mxs
pxa ASoC: mmp-sspa: set phase two word length register 2020-11-20 13:49:08 +00:00
qcom ASoC: qcom: fix QDSP6 dependencies, attempt #3 2020-12-04 23:26:37 +00:00
rockchip ASoC: rockchip: mark OF related data as maybe unused 2020-11-26 13:07:07 +00:00
samsung ASoC: samsung: smdk_wm8994: remove redundant of_match_ptr() 2020-11-26 13:07:33 +00:00
sh ASoC: sh: depend on COMMON_CLK to fix compile tests 2020-11-23 20:39:47 +00:00
sirf
sof Merge series "ASoC: SOF: Intel: fix to dsp state dump trace levels" from Kai Vehmanen <kai.vehmanen@linux.intel.com>: 2020-12-11 17:46:27 +00:00
spear
sprd
sti
stm ASoC: stm: depend on COMMON_CLK to fix compile tests 2020-11-23 20:39:48 +00:00
sunxi ASoC: sunxi: do not select COMMON_CLK to fix builds 2020-11-19 13:00:01 +00:00
tegra ASoC: tegra: Don't warn on probe deferral 2020-11-11 12:35:10 +00:00
ti ASoC: ti: davinci: mark OF related data as maybe unused 2020-11-26 13:07:08 +00:00
txx9
uniphier ASoC: uniphier: mark OF related data as maybe unused 2020-11-26 13:07:09 +00:00
ux500
xilinx
xtensa
zte
Kconfig
Makefile
soc-ac97.c
soc-acpi.c
soc-card.c
soc-component.c ASoC: soc-pcm: care trigger rollback 2020-12-09 12:13:38 +00:00
soc-compress.c ASoC: soc-compress: add soc_compr_clean() and call it from soc_compr_open/free() 2020-11-26 13:09:37 +00:00
soc-core.c Auxiliary Bus support tag for 5.11-rc1 2020-12-04 20:39:45 +00:00
soc-dai.c ASoC: soc-pcm: care trigger rollback 2020-12-09 12:13:38 +00:00
soc-dapm.c ASoC: dapm: remove widget from dirty list on free 2020-12-15 13:29:01 +00:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: dmaengine: Document support for TX only or RX only streams 2020-10-09 15:11:20 +01:00
soc-jack.c
soc-link.c ASoC: soc-pcm: care trigger rollback 2020-12-09 12:13:38 +00:00
soc-ops.c
soc-pcm.c ASoC: soc-pcm: care trigger rollback 2020-12-09 12:13:38 +00:00
soc-topology.c ASoC: topology: Fix wrong size check 2020-12-11 13:23:01 +00:00
soc-utils.c