ALSA: pcm: Return negative delays from SNDRV_PCM_IOCTL_DELAY.
authorJeffery Miller <jmiller@neverware.com>
Sat, 21 Apr 2018 04:20:46 +0000 (23:20 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 1 May 2018 19:58:16 +0000 (12:58 -0700)
commit00e0495d83277d43078aa99b3186cc527af792a5
tree1a108be787512d460aa1a9e72d8b2f3dfa42ca9b
parent6ab1a94d17dbf959f5910f56edda84889f5ddd39
ALSA: pcm: Return negative delays from SNDRV_PCM_IOCTL_DELAY.

commit 912e4c332037e7ed063c164985c36fb2b549ea3a upstream.

The commit c2c86a97175f ("ALSA: pcm: Remove set_fs() in PCM core code")
changed SNDRV_PCM_IOCTL_DELAY to return an inconsistent error instead of a
negative delay.  Originally the call would succeed and return the negative
delay.  The Chromium OS Audio Server (CRAS) gets confused and hangs when
the error is returned instead of the negative delay.

Help CRAS avoid the issue by rolling back the behavior to return a
negative delay instead of an error.

Fixes: c2c86a97175f ("ALSA: pcm: Remove set_fs() in PCM core code")
Signed-off-by: Jeffery Miller <jmiller@neverware.com>
Cc: <stable@vger.kernel.org> # v4.13+
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/core/pcm_compat.c
sound/core/pcm_native.c