diff --git a/sound/firewire/fireworks/fireworks_midi.c b/sound/firewire/fireworks/fireworks_midi.c index 6d3d942e2dce..fd17777981e4 100644 --- a/sound/firewire/fireworks/fireworks_midi.c +++ b/sound/firewire/fireworks/fireworks_midi.c @@ -22,6 +22,8 @@ static int midi_open(struct snd_rawmidi_substream *substream) if (err >= 0) { ++efw->substreams_counter; err = snd_efw_stream_start_duplex(efw); + if (err < 0) + --efw->substreams_counter; } mutex_unlock(&efw->mutex); if (err < 0)