vi sound/core/oss/pcm_oss.c +1572 (in linus' git tree) and note:
static int snd_pcm_oss_sync(struct snd_pcm_oss_file *pcm_oss_file)
{
...
size_t size;
... :1608
size = runtime->oss.period_bytes - runtime->oss.period_ptr;
can this period_bytes - buffer_used become less than 0?
Roel