Commit d7e040ee authored by Jaroslav Kysela's avatar Jaroslav Kysela

ALSA CVS update - Takashi Iwai <tiwai@suse.de>

Timer Midlevel
fixed the unbalanced spinlock at the error path.
parent 68fd9f41
......@@ -1706,20 +1706,20 @@ static ssize_t snd_timer_user_read(struct file *file, char *buffer, size_t count
break;
}
}
if (err < 0)
break;
spin_unlock_irq(&tu->qlock);
if (err < 0)
goto _error;
if (tu->tread) {
if (copy_to_user(buffer, &tu->tqueue[tu->qhead++], sizeof(snd_timer_tread_t))) {
err = -EFAULT;
break;
goto _error;
}
} else {
if (copy_to_user(buffer, &tu->queue[tu->qhead++], sizeof(snd_timer_read_t))) {
err = -EFAULT;
break;
goto _error;
}
}
......@@ -1732,6 +1732,7 @@ static ssize_t snd_timer_user_read(struct file *file, char *buffer, size_t count
tu->qused--;
}
spin_unlock_irq(&tu->qlock);
_error:
return result > 0 ? result : err;
}
......
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