Re: [PATCH v3] ASoC: cs35l56: Fix probe deadlock waiting for SoundWire enumeration

From: Richard Fitzgerald

Date: Tue Sep 01 2026 - 12:02:43 EST


On 01/09/2026 4:18 pm, Mark Brown wrote:
On Tue, Sep 01, 2026 at 01:26:44PM +0100, Richard Fitzgerald wrote:

The work item is queued on a freezable workqueue to prevent a race between
the work item and system_suspend of another instance. If the workqueue
were not frozen it would be possible for the work item of one driver
instance to call snd_soc_register_component() which then calls
cs35l56_component_probe() of another instance while that instance is
already executing its system suspend functions.

I'll apply this since it's very much a corner case and there's a real
problem but you should probably check out the kexec case - it looks like
it misses freeze_kernel_threads(). TBH I'm not sure the issue there
isn't on the kexec side, it's not exactly a common case and having a
difference like that feels like asking for trouble.

I think you are asking for a shutdown() handler that cancels the
work.... ?

If I've got that right, this isn't so urgent that I can't do a V4 with
that change.