[alsa-devel] [PATCH] ASoC: dapm: Fix race condition in widgets power list creation
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:
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
> 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
More information about the Alsa-devel