projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
ALSA: timer: Fix negative queue usage by racy accesses
[firefly-linux-kernel-4.4.55.git]
/
sound
/
core
/
timer.c
diff --git
a/sound/core/timer.c
b/sound/core/timer.c
index b982d1b089bd90ff44267f528dff8690d76ad4db..7c6155f5865b8a4173aff59d74e133ac96b31331 100644
(file)
--- a/
sound/core/timer.c
+++ b/
sound/core/timer.c
@@
-1961,6
+1961,7
@@
static ssize_t snd_timer_user_read(struct file *file, char __user *buffer,
qhead = tu->qhead++;
tu->qhead %= tu->queue_size;
+ tu->qused--;
spin_unlock_irq(&tu->qlock);
if (tu->tread) {
@@
-1974,7
+1975,6
@@
static ssize_t snd_timer_user_read(struct file *file, char __user *buffer,
}
spin_lock_irq(&tu->qlock);
- tu->qused--;
if (err < 0)
goto _error;
result += unit;