From dcc484615ed59b3fa3c08ceae0ae480d44fdeba4 Mon Sep 17 00:00:00 2001 From: Giuliano Pochini Date: Mon, 6 Nov 2006 11:42:00 +0100 Subject: [PATCH] --- yaml --- r: 45416 b: refs/heads/master c: 5929546a96d55962bdcabae0c4e25dfcd9f1fda9 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/sound/pci/echoaudio/midi.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 32d4f74b199b..66b001b405ae 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5b005a0126bc2a2be3ae2c333d56e91bd5e2d8a6 +refs/heads/master: 5929546a96d55962bdcabae0c4e25dfcd9f1fda9 diff --git a/trunk/sound/pci/echoaudio/midi.c b/trunk/sound/pci/echoaudio/midi.c index e31f0f11e3a8..91f5bff66d3f 100644 --- a/trunk/sound/pci/echoaudio/midi.c +++ b/trunk/sound/pci/echoaudio/midi.c @@ -213,7 +213,7 @@ static void snd_echo_midi_output_write(unsigned long data) sent = bytes = 0; spin_lock_irqsave(&chip->lock, flags); chip->midi_full = 0; - if (chip->midi_out && !snd_rawmidi_transmit_empty(chip->midi_out)) { + if (!snd_rawmidi_transmit_empty(chip->midi_out)) { bytes = snd_rawmidi_transmit_peek(chip->midi_out, buf, MIDI_OUT_BUFFER_SIZE - 1); DE_MID(("Try to send %d bytes...\n", bytes)); @@ -264,9 +264,11 @@ static void snd_echo_midi_output_trigger(struct snd_rawmidi_substream *substream } } else { if (chip->tinuse) { - del_timer(&chip->timer); chip->tinuse = 0; + spin_unlock_irq(&chip->lock); + del_timer_sync(&chip->timer); DE_MID(("Timer removed\n")); + return; } } spin_unlock_irq(&chip->lock);