Re: some missing spin_unlocks

From: Takashi Iwai
Date: Wed Aug 24 2005 - 12:02:44 EST


At Wed, 24 Aug 2005 11:56:58 -0400,
Lee Revell wrote:
>
> [added alsa-devel to cc:]
>
> On Mon, 2005-08-22 at 15:26 -0700, Ted Unangst wrote:
> > I think these are all real bugs.
> >
> > sound/synth/emux/emux_synth.c snd_emux_note_on, line 101
> > snd_assert will return without unlocking emu->voice_lock (line 89)
>
> This one is probably a real bug.

The patch below fixes them (already applied to ALSA CVS tree).

================================================================

[PATCH] Fix missing spin_unlock

Fixed missing spin_unlock.

Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>


--- linux/sound/pci/au88x0/au88x0_pcm.c:1.9 Thu Aug 18 05:43:12 2005
+++ linux/sound/pci/au88x0/au88x0_pcm.c Wed Aug 24 09:57:25 2005
@@ -220,8 +220,10 @@
vortex_adb_allocroute(chip, -1,
params_channels(hw_params),
substream->stream, type);
- if (dma < 0)
+ if (dma < 0) {
+ spin_unlock_irq(&chip->lock);
return dma;
+ }
stream = substream->runtime->private_data = &chip->dma_adb[dma];
stream->substream = substream;
/* Setup Buffers. */
--- linux/sound/synth/emux/emux_synth.c:1.11 Tue Dec 7 07:36:07 2004
+++ linux/sound/synth/emux/emux_synth.c Wed Aug 24 09:57:25 2005
@@ -98,7 +98,6 @@
vp = emu->ops.get_voice(emu, port);
if (vp == NULL || vp->ch < 0)
continue;
- snd_assert(vp->emu != NULL && vp->hw != NULL, return);
if (STATE_IS_PLAYING(vp->state))
emu->ops.terminate(vp);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/