Commit c6e5e741 authored by Takashi Sakamoto's avatar Takashi Sakamoto Committed by Takashi Iwai

ALSA: fireworks/bebob: Shorten critical section for stream_stop_duplex()

All assignment for local variables in these functions are not related to
critical section.
Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 21fd3e95
...@@ -655,8 +655,6 @@ void snd_bebob_stream_stop_duplex(struct snd_bebob *bebob) ...@@ -655,8 +655,6 @@ void snd_bebob_stream_stop_duplex(struct snd_bebob *bebob)
struct amdtp_stream *master, *slave; struct amdtp_stream *master, *slave;
atomic_t *master_substreams, *slave_substreams; atomic_t *master_substreams, *slave_substreams;
mutex_lock(&bebob->mutex);
if (bebob->master == &bebob->rx_stream) { if (bebob->master == &bebob->rx_stream) {
slave = &bebob->tx_stream; slave = &bebob->tx_stream;
master = &bebob->rx_stream; master = &bebob->rx_stream;
...@@ -669,6 +667,8 @@ void snd_bebob_stream_stop_duplex(struct snd_bebob *bebob) ...@@ -669,6 +667,8 @@ void snd_bebob_stream_stop_duplex(struct snd_bebob *bebob)
master_substreams = &bebob->capture_substreams; master_substreams = &bebob->capture_substreams;
} }
mutex_lock(&bebob->mutex);
if (atomic_read(slave_substreams) == 0) { if (atomic_read(slave_substreams) == 0) {
amdtp_stream_pcm_abort(slave); amdtp_stream_pcm_abort(slave);
amdtp_stream_stop(slave); amdtp_stream_stop(slave);
......
...@@ -284,8 +284,6 @@ void snd_efw_stream_stop_duplex(struct snd_efw *efw) ...@@ -284,8 +284,6 @@ void snd_efw_stream_stop_duplex(struct snd_efw *efw)
struct amdtp_stream *master, *slave; struct amdtp_stream *master, *slave;
atomic_t *master_substreams, *slave_substreams; atomic_t *master_substreams, *slave_substreams;
mutex_lock(&efw->mutex);
if (efw->master == &efw->rx_stream) { if (efw->master == &efw->rx_stream) {
slave = &efw->tx_stream; slave = &efw->tx_stream;
master = &efw->rx_stream; master = &efw->rx_stream;
...@@ -298,6 +296,8 @@ void snd_efw_stream_stop_duplex(struct snd_efw *efw) ...@@ -298,6 +296,8 @@ void snd_efw_stream_stop_duplex(struct snd_efw *efw)
master_substreams = &efw->capture_substreams; master_substreams = &efw->capture_substreams;
} }
mutex_lock(&efw->mutex);
if (atomic_read(slave_substreams) == 0) { if (atomic_read(slave_substreams) == 0) {
stop_stream(efw, slave); stop_stream(efw, slave);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment