This reverts commit f514248727606b9087bc38a284ff686e0093abf1.
The original patch attempted to acquire the card->controls_rwsem lock in
fsl_xcvr_mode_put(). However, this function is called from the upper ALSA
core function snd_ctl_elem_write(), which already holds the write lock on
controls_rwsem for the whole put operation. So there is no need to simply
hold the lock for fsl_xcvr_activate_ctl() again.
Acquiring the read lock while holding the write lock in the same thread
results in a deadlock and a hung task, as reported by Alexander Stein.
Reported-by: Alexander Stein <redacted>
Closes: https://lore.kernel.org/linux-sound/5056506.GXAFRqVoOG@steina-w/
Signed-off-by: Ziyi Guo <redacted>
---
sound/soc/fsl/fsl_xcvr.c | 3 ---
1 file changed, 3 deletions(-)
@@ -223,13 +223,10 @@ static int fsl_xcvr_mode_put(struct snd_kcontrol *kcontrol,xcvr->mode=snd_soc_enum_item_to_val(e,item[0]);-down_read(&card->snd_card->controls_rwsem);fsl_xcvr_activate_ctl(dai,fsl_xcvr_arc_mode_kctl.name,(xcvr->mode==FSL_XCVR_MODE_ARC));fsl_xcvr_activate_ctl(dai,fsl_xcvr_earc_capds_kctl.name,(xcvr->mode==FSL_XCVR_MODE_EARC));-up_read(&card->snd_card->controls_rwsem);-/* Allow playback for SPDIF only */rtd=snd_soc_get_pcm_runtime(card,card->dai_link);rtd->pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream_count=
From: Mark Brown <broonie@kernel.org> Date: 2026-02-10 14:40:47
On Tue, Feb 10, 2026 at 02:38:09PM +0000, Ziyi Guo wrote:
This reverts commit f514248727606b9087bc38a284ff686e0093abf1.
Please submit patches using subject lines reflecting the style for the
subsystem, this makes it easier for people to identify relevant patches.
Look at what existing commits in the area you're changing are doing and
make sure your subject lines visually resemble what they're doing.
There's no need to resubmit to fix this alone.
Please include human readable descriptions of things like commits and
issues being discussed in e-mail in your mails, this makes them much
easier for humans to read especially when they have no internet access.
I do frequently catch up on my mail on flights or while otherwise
travelling so this is even more pressing for me than just being about
making things a bit easier to read.
From: Mark Brown <broonie@kernel.org> Date: 2026-02-10 17:09:38
On Tue, Feb 10, 2026 at 02:38:09PM +0000, Ziyi Guo wrote:
This reverts commit f514248727606b9087bc38a284ff686e0093abf1.
The original patch attempted to acquire the card->controls_rwsem lock in
fsl_xcvr_mode_put(). However, this function is called from the upper ALSA
core function snd_ctl_elem_write(), which already holds the write lock on
controls_rwsem for the whole put operation. So there is no need to simply
hold the lock for fsl_xcvr_activate_ctl() again.
This doesn't apply against v6.19:
Applying: ASoC: fsl_xcvr: ASoC revert missing lock change in fsl_xcvr_mode_put()
error: sha1 information is lacking or useless (sound/soc/fsl/fsl_xcvr.c).
error: could not build fake ancestor
Patch failed at 0001 ASoC: fsl_xcvr: ASoC revert missing lock change in fsl_xcvr_mode_put()