Re: [PATCH] ASoC: fsl_xcvr: fix missing lock in fsl_xcvr_mode_put()
From: Ziyi Guo
Date: Tue Feb 10 2026 - 08:58:45 EST
>
> This lock causes a blocked task on my TQMa8MPxL based board:
>
> INFO: task alsactl:1969 blocked for more than 120 seconds.
> Tainted: G W 6.19.0-next-20260209+ #3331
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> task:alsactl state:D stack:0 pid:1969 tgid:1969 ppid:1 task_flags:0x400100 flags:0x00000a01
> Call trace:
> __switch_to+0xdc/0x120 (T)
> __schedule+0x258/0x790
> schedule+0x30/0xb0
> schedule_preempt_disabled+0x20/0x40
> rwsem_down_read_slowpath+0x214/0x68c
> down_read+0xb0/0xb8
> fsl_xcvr_mode_put+0x4c/0xc0 [snd_soc_fsl_xcvr ac1b31380c6a6ea0d613bd5f78489e314a40f91f]
> snd_ctl_elem_write+0xdc/0x180 [snd 852e63996474051c57bcd1a86ebfd81083073853]
> snd_ctl_ioctl+0x7a4/0xaec [snd 852e63996474051c57bcd1a86ebfd81083073853]
> __arm64_sys_ioctl+0x9c/0xe4
> invoke_syscall.constprop.0+0x58/0xcc
> el0_svc_common.constprop.0+0xac/0xd4
> do_el0_svc+0x18/0x20
> el0_svc+0x24/0xa0
> el0t_64_sync_handler+0x98/0xdc
> el0t_64_sync+0x154/0x158
> INFO: task alsactl:1969 <reader> blocked on an rw-semaphore likely owned by task alsactl:1969 <writer>
Thanks Alexander for reminding this, it seems that in the context of
the whole put operation, the lock is held through upper ALSA core
layer, so we don't need to add lock protection simply for
fsl_xcvr_activate_ctl() in the driver layer.
Thanks for your time and apologies for the inconvenience. I think we
can drop this patch.