]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - sound/firewire/fireworks/fireworks_stream.c
ALSA: fireworks/bebob: Shorten critical section for stream_stop_duplex()
[karo-tx-linux.git] / sound / firewire / fireworks / fireworks_stream.c
index 541569022a7c319fff4464ec57dab44d65993f58..b985fc5ebdc6b9cc490e41695d76b579a7b3fe3d 100644 (file)
@@ -284,8 +284,6 @@ void snd_efw_stream_stop_duplex(struct snd_efw *efw)
        struct amdtp_stream *master, *slave;
        atomic_t *master_substreams, *slave_substreams;
 
-       mutex_lock(&efw->mutex);
-
        if (efw->master == &efw->rx_stream) {
                slave  = &efw->tx_stream;
                master = &efw->rx_stream;
@@ -298,6 +296,8 @@ void snd_efw_stream_stop_duplex(struct snd_efw *efw)
                master_substreams = &efw->capture_substreams;
        }
 
+       mutex_lock(&efw->mutex);
+
        if (atomic_read(slave_substreams) == 0) {
                stop_stream(efw, slave);