linux/sound/soc/stm
Olivier Moysan 2859b17840
ASoC: stm32: spdifrx: fix inconsistent lock state
In current spdifrx driver locks may be requested as follows:
- request lock on iec capture control, when starting synchronization.
- request lock in interrupt context, when spdifrx stop is called
from IRQ handler.

Take lock with IRQs disabled, to avoid the possible deadlock.

Lockdep report:
[   74.278059] ================================
[   74.282306] WARNING: inconsistent lock state
[   74.290120] --------------------------------
...
[   74.314373]        CPU0
[   74.314377]        ----
[   74.314381]   lock(&(&spdifrx->lock)->rlock);
[   74.314396]   <Interrupt>
[   74.314400]     lock(&(&spdifrx->lock)->rlock);

Fixes: 03e4d5d56f ("ASoC: stm32: Add SPDIFRX support")

Signed-off-by: Olivier Moysan <olivier.moysan@st.com>
Link: https://lore.kernel.org/r/20191204154333.7152-2-olivier.moysan@st.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-12-24 23:56:16 +00:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile ASoC: stm32: add DFSDM DAI support 2018-01-10 10:52:05 +00:00
stm32_adfsdm.c ASoC: stm: stm32_adfsdm: remove snd_pcm_ops 2019-10-08 13:44:32 +01:00
stm32_i2s.c ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
stm32_sai_sub.c ASoC: stm32: sai: add restriction on mmap support 2019-11-05 18:52:21 +00:00
stm32_sai.c ASoC: stm32: sai: clean up indentation issue 2019-10-01 12:15:06 +01:00
stm32_sai.h Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
stm32_spdifrx.c ASoC: stm32: spdifrx: fix inconsistent lock state 2019-12-24 23:56:16 +00:00