Merge tag 'sound-fix-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "A few last-minute fixes for rc1: - ALSA core timer and sequencer fixes for bugs spotted by syzkaller - a couple of trivial HD-audio fixups - additional PCI / codec IDs for Intel Geminilake - fixes for CT-XFi DMA mask bugs" * tag 'sound-fix-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: seq: Fix link corruption by event error handling ALSA: hda - Add subwoofer support for Dell Inspiron 17 7000 Gaming ALSA: ctxfi: Fallback DMA mask to 32bit ALSA: timer: Reject user params with too small ticks ALSA: hda: Add Geminilake HDMI codec ID ALSA: hda - Fix micmute hotkey problem for a lenovo AIO machine ALSA: hda - Add Geminilake PCI ID
This commit is contained in:
@@ -135,6 +135,7 @@ int snd_seq_fifo_event_in(struct snd_seq_fifo *f,
|
||||
f->tail = cell;
|
||||
if (f->head == NULL)
|
||||
f->head = cell;
|
||||
cell->next = NULL;
|
||||
f->cells++;
|
||||
spin_unlock_irqrestore(&f->lock, flags);
|
||||
|
||||
@@ -214,6 +215,8 @@ void snd_seq_fifo_cell_putback(struct snd_seq_fifo *f,
|
||||
spin_lock_irqsave(&f->lock, flags);
|
||||
cell->next = f->head;
|
||||
f->head = cell;
|
||||
if (!f->tail)
|
||||
f->tail = cell;
|
||||
f->cells++;
|
||||
spin_unlock_irqrestore(&f->lock, flags);
|
||||
}
|
||||
|
@@ -1702,9 +1702,21 @@ static int snd_timer_user_params(struct file *file,
|
||||
return -EBADFD;
|
||||
if (copy_from_user(¶ms, _params, sizeof(params)))
|
||||
return -EFAULT;
|
||||
if (!(t->hw.flags & SNDRV_TIMER_HW_SLAVE) && params.ticks < 1) {
|
||||
err = -EINVAL;
|
||||
goto _end;
|
||||
if (!(t->hw.flags & SNDRV_TIMER_HW_SLAVE)) {
|
||||
u64 resolution;
|
||||
|
||||
if (params.ticks < 1) {
|
||||
err = -EINVAL;
|
||||
goto _end;
|
||||
}
|
||||
|
||||
/* Don't allow resolution less than 1ms */
|
||||
resolution = snd_timer_resolution(tu->timeri);
|
||||
resolution *= params.ticks;
|
||||
if (resolution < 1000000) {
|
||||
err = -EINVAL;
|
||||
goto _end;
|
||||
}
|
||||
}
|
||||
if (params.queue_size > 0 &&
|
||||
(params.queue_size < 32 || params.queue_size > 1024)) {
|
||||
|
Reference in New Issue
Block a user