pcm, rate: hw_avail must not be negative before starting the stream

If it is, then it means most likely the driver problem, so we should
return error immediately instead.

Signed-off-by: Alexander E. Patrakov <patrakov@gmail.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
Alexander E. Patrakov 2014-09-15 20:17:47 +06:00 committed by Jaroslav Kysela
parent 650b8c975c
commit 048568bbea

View file

@ -1069,7 +1069,10 @@ static int snd_pcm_rate_start(snd_pcm_t *pcm)
gettimestamp(&rate->trigger_tstamp, pcm->tstamp_type);
avail = snd_pcm_mmap_playback_hw_avail(rate->gen.slave);
if (avail <= 0) {
if (avail < 0) /* can't happen on healthy drivers */
return -EBADFD;
if (avail == 0) {
/* postpone the trigger since we have no data committed yet */
rate->start_pending = 1;
return 0;