[alsa-devel] [PATCH] ASoC: dapm: Fix race condition in widgets power list creation

Mark Brown broonie at opensource.wolfsonmicro.com
Tue Jan 18 12:39:56 CET 2011

On Tue, Jan 18, 2011 at 01:35:37PM +0200, Peter Ujfalusi wrote:

> Hmm, the patch looks quite similar to the patch I've sent back in November:
> http://mailman.alsa-project.org/pipermail/alsa-devel/2010-November/033362.html

My thought exactly.

> On 01/18/11 12:39, ext Mark Brown wrote:

> > This needs a bit more analysis - why are we getting multiple
> > simultaneous calls to dapm_power_widgets() and is that itself safe?  The
> > ASoC locking model has always been to have a big lock around the entire
> > card rather than to lock subcomponents, and for example this isn't going
> > to make sure we're consistent with register map accesses from other
> > parts of the code.

> As far as I have traced back than, it was due to the use of dapm_sync in
> machine drivers. For me it looked that all other paths were satisfactory
> protected.
> In my case  the use of SOC_DAPM_PIN_SWITCH() instead of the custom call
> fixed the race (since this will take a card mutex, AFAIK).

I *suspect* that we're in a similar case and either the locking has been
broken by the multi-component stuff or there's other cases that need
protection, probably the jack detection code.

> PS: I might received this mail unintentionally, since I was not on the
> TO/CC, and alsa-devel neither.

> Should alsa-devel be on the CC?

Yes, I bounced on the second copy - Misael had sent two copies of the
mail, one omitting the CC, and I'd replied to the first one before I saw
the second.

More information about the Alsa-devel mailing list