git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ALSA: seq: Fix race at timer setup and close
[pandora-kernel.git]
/
sound
/
core
/
seq
/
seq_queue.c
diff --git
a/sound/core/seq/seq_queue.c
b/sound/core/seq/seq_queue.c
index
f907736
..
4c9aa46
100644
(file)
--- a/
sound/core/seq/seq_queue.c
+++ b/
sound/core/seq/seq_queue.c
@@
-144,8
+144,10
@@
static struct snd_seq_queue *queue_new(int owner, int locked)
static void queue_delete(struct snd_seq_queue *q)
{
/* stop and release the timer */
static void queue_delete(struct snd_seq_queue *q)
{
/* stop and release the timer */
+ mutex_lock(&q->timer_mutex);
snd_seq_timer_stop(q->timer);
snd_seq_timer_close(q);
snd_seq_timer_stop(q->timer);
snd_seq_timer_close(q);
+ mutex_unlock(&q->timer_mutex);
/* wait until access free */
snd_use_lock_sync(&q->use_lock);
/* release resources... */
/* wait until access free */
snd_use_lock_sync(&q->use_lock);
/* release resources... */