[alsa-devel] [PATCH resend] ALSA: firewire-speakers: fix locking

Takashi Iwai tiwai at suse.de
Mon Oct 3 10:09:32 CEST 2011


At Sat, 1 Oct 2011 15:57:46 +0200,
Stefan Richter wrote:
> 
> Date: Sat, 27 Aug 2011 16:45:28 +0200
> 
> There is a lock inversion between fwspk->mutex and pcm->open_mutex
> reported by lockdep when fwspk_hw_free is called.
> 
> Fixed by copying the fix from the same former issue in the isight
> sound driver (commit f3f7c1837f6bcae3601fc535b339426868bf1549
> "ALSA: isight: fix locking").
> 
> Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>

We should put cc to stable kernel, right?


thanks,

Takashi

> ---
>  sound/firewire/speakers.c |    5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> Index: b/sound/firewire/speakers.c
> ===================================================================
> --- a/sound/firewire/speakers.c
> +++ b/sound/firewire/speakers.c
> @@ -772,9 +772,10 @@ static int __devexit fwspk_remove(struct
>  {
>  	struct fwspk *fwspk = dev_get_drvdata(dev);
>  
> -	mutex_lock(&fwspk->mutex);
>  	amdtp_out_stream_pcm_abort(&fwspk->stream);
>  	snd_card_disconnect(fwspk->card);
> +
> +	mutex_lock(&fwspk->mutex);
>  	fwspk_stop_stream(fwspk);
>  	mutex_unlock(&fwspk->mutex);
>  
> @@ -790,8 +791,8 @@ static void fwspk_bus_reset(struct fw_un
>  	fcp_bus_reset(fwspk->unit);
>  
>  	if (cmp_connection_update(&fwspk->connection) < 0) {
> -		mutex_lock(&fwspk->mutex);
>  		amdtp_out_stream_pcm_abort(&fwspk->stream);
> +		mutex_lock(&fwspk->mutex);
>  		fwspk_stop_stream(fwspk);
>  		mutex_unlock(&fwspk->mutex);
>  		return;
> 
> 
> -- 
> Stefan Richter
> -=====-==-== =-=- ----=
> http://arcgraph.de/sr/
> 


More information about the Alsa-devel mailing list