linux/sound/soc
Kai Vehmanen 5dc7d5bc96
ASoC: hdac_hda: fix race in device removal
When ASoC card instance is removed containing a HDA codec,
hdac_hda_codec_remove() may run in parallel with codec resume.
This will cause problems if the HDA link is freed with
snd_hdac_ext_bus_link_put() while the codec is still in
middle of its resume process.

To fix this, change the order such that pm_runtime_disable()
is called before the link is freed. This will ensure any
pending runtime PM action is completed before proceeding
to free the link.

This issue can be easily hit with e.g. SOF driver by loading and
unloading the drivers.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20191101170635.26389-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-11-04 13:21:15 +00:00
..
adi treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
amd ASoC: amd: use devm_platform_ioremap_resource() to simplify code 2019-09-04 13:48:04 +01:00
atmel ASoC: atmel_ssc_dai: Remove wrong spinlock usage 2019-09-18 11:12:24 +01:00
au1x ASoC: au1x: psc-i2s: use devm_platform_ioremap_resource() to simplify code 2019-07-31 12:12:25 +01:00
bcm ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
cirrus ASoC: ep93xx: use devm_platform_ioremap_resource() to simplify code 2019-09-04 13:48:22 +01:00
codecs ASoC: hdac_hda: fix race in device removal 2019-11-04 13:21:15 +00:00
dwc treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
fsl ASoC: fsl_sai: Fix noise when using EDMA 2019-09-17 16:56:19 +01:00
generic SoC: simple-card-utils: set 0Hz to sysclk when shutdown 2019-09-09 10:51:21 +01:00
hisilicon treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 340 2019-06-05 17:37:07 +02:00
img treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
intel ASoC: Intel: sof-rt5682: add a check for devm_clk_get 2019-10-18 18:08:54 +01:00
jz4740 Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
kirkwood ASoC: kirkwood: fix device remove ordering 2019-10-23 18:20:55 +01:00
mediatek ASoC: mediatek: mt8183: fix space issues 2019-08-30 13:02:33 +01:00
meson ASoC: meson: tdmout: add sm1 support 2019-09-05 18:18:07 +01:00
mxs ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
pxa ASoC: mmp-sspa: use devm_platform_ioremap_resource() to simplify code 2019-07-31 12:10:54 +01:00
qcom ASoC: sdm845: remove unneeded semicolon 2019-09-15 10:29:51 +01:00
rockchip ASoC: rockchip: rockchip_max98090: Enable SHDN to fix headset detection 2019-10-28 13:11:21 +00:00
samsung ASoC: samsung: arndale: Add missing OF node dereferencing 2019-09-23 14:14:35 -07:00
sh ASoC: rsnd: dma: fix SSI9 4/5/6/7 busif dma address 2019-10-23 18:20:55 +01:00
sirf ASoC: sirf: use devm_platform_ioremap_resource() to simplify code 2019-07-31 12:05:39 +01:00
sof ASoC: SOF: ipc: Fix memory leak in sof_set_get_large_ctrl_data 2019-10-28 13:10:42 +00:00
spear ASoC: spear: use devm_platform_ioremap_resource() to simplify code 2019-07-31 12:06:18 +01:00
sprd ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
sti ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
stm ASoC: stm32: sai: fix sysclk management on shutdown 2019-10-18 18:09:03 +01:00
sunxi ASoC: sun4i: Revert A83t description 2019-08-27 19:22:02 +01:00
tegra ASoC: tegra: use devm_platform_ioremap_resource() to simplify code 2019-09-04 13:48:50 +01:00
ti ASoC: ti: sdma-pcm: Add back the flags parameter for non standard dma names 2019-10-28 13:11:01 +00:00
txx9 Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
uniphier Merge branch 'asoc-5.3' into asoc-5.4 2019-08-20 18:28:43 +01:00
ux500 ASoC: ux500: mop500: consider CPU-Platform possibility 2019-06-28 15:19:55 +01:00
xilinx ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
xtensa ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
zte ASoC: zx-tdm: remove redundant assignment to ts_width on error return path 2019-08-01 13:56:26 +01:00
Kconfig ASoC: remove w90x900/nuc900 platform drivers 2019-08-12 14:00:29 +01:00
Makefile ASoC: remove w90x900/nuc900 platform drivers 2019-08-12 14:00:29 +01:00
soc-ac97.c
soc-acpi.c ASoC: soc-acpi: fix implicit header use of module.h/export.h 2019-05-08 18:06:28 +09:00
soc-component.c ASoC: soc-component: add snd_soc_pcm_component_pcm_free() 2019-08-05 16:27:16 +01:00
soc-compress.c ASoC: core: Move pcm_mutex up to card level from snd_soc_pcm_runtime 2019-08-15 15:07:43 +01:00
soc-core.c ASoC: core: use list_del_init and move it back to soc_cleanup_component 2019-09-20 12:05:46 +01:00
soc-dai.c ASoC: soc-dai: move snd_soc_dai_stream_valid() to soc-dai.c 2019-07-23 18:14:26 +01:00
soc-dapm.c ASoC: soc-core: add snd_soc_dapm_init() 2019-09-02 13:21:20 +01:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: More changes for v5.1 2019-02-28 13:30:55 +01:00
soc-io.c
soc-jack.c ASoC: add soc-component.c 2019-08-05 16:16:19 +01:00
soc-ops.c
soc-pcm.c ASoC: core: Fix pcm code debugfs error 2019-10-07 13:51:09 +01:00
soc-topology.c ASoC: topology: Fix a signedness bug in soc_tplg_dapm_widget_create() 2019-09-26 08:22:40 -07:00
soc-utils.c ASoC: add soc-component.c 2019-08-05 16:16:19 +01:00