ALSA: pcm: Return negative delays from SNDRV_PCM_IOCTL_DELAY.
commit8c3aa80f45e442c046f8dc0babd723b4b58ff223
authorJeffery Miller <jmiller@neverware.com>
Sat, 21 Apr 2018 04:20:46 +0000 (20 23:20 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 1 May 2018 19:47:23 +0000 (1 12:47 -0700)
treef8c33cf7e51f387660d1e6146b284747ad7a3cb2
parent2b4b27a1bac63b396b1f61b28469cb3f99f3c515
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