diff options
author | Jaroslav Kysela <perex@perex.cz> | 2010-01-08 02:43:01 -0500 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2010-01-08 02:46:45 -0500 |
commit | 7b3a177b0d4f92b3431b8dca777313a07533a710 (patch) | |
tree | 25a484491731ef31baa6a80f468ed78d6e553cd9 /sound/core | |
parent | 1250932e48d3b698415b1f04775433cf1da688d6 (diff) |
ALSA: pcm_lib: fix "something must be really wrong" condition
When runtime->periods == 1 or when pointer crosses end of ring buffer,
the delta might be greater than buffer_size.
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'sound/core')
-rw-r--r-- | sound/core/pcm_lib.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c index a63226232ef4..c7b35b20e659 100644 --- a/sound/core/pcm_lib.c +++ b/sound/core/pcm_lib.c | |||
@@ -362,7 +362,7 @@ static int snd_pcm_update_hw_ptr0(struct snd_pcm_substream *substream, | |||
362 | (unsigned long)runtime->hw_ptr_base); | 362 | (unsigned long)runtime->hw_ptr_base); |
363 | } | 363 | } |
364 | /* something must be really wrong */ | 364 | /* something must be really wrong */ |
365 | if (delta >= runtime->buffer_size) { | 365 | if (delta >= runtime->buffer_size + runtime->period_size) { |
366 | hw_ptr_error(substream, | 366 | hw_ptr_error(substream, |
367 | "Unexpected hw_pointer value %s" | 367 | "Unexpected hw_pointer value %s" |
368 | "(stream=%i, pos=%ld, new_hw_ptr=%ld, " | 368 | "(stream=%i, pos=%ld, new_hw_ptr=%ld, " |