15.09.2014 16:14, Takashi Iwai wrote: > At Mon, 15 Sep 2014 16:03:57 +0600, > Alexander E. Patrakov wrote: >> >> 15.09.2014 14:49, Takashi Iwai пишет: >>> At Sun, 14 Sep 2014 00:30:18 +0600, >>> Alexander E. Patrakov wrote: >>>> >>>> Such negative returns are possible during an underrun if xrun detection >>>> is disabled. >>>> >>>> So, don't store the result in an unsigned variable (where it will >>>> overflow), and postpone the trigger in such case, too. >>>> >>>> Signed-off-by: Alexander E. Patrakov >>>> --- >>>> >>>> The patch is only compile-tested and the second hunk may well be wrong. >>>> >>>> There are also similar issues in pcm_share.c, but, as I don't completely >>>> understand the code there and cannot test that plugin at all due to >>>> unrelated crashes, there will be no patch from me. >>> >>> In general, 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. >> >> Thanks for the review. Would -EBADFD be a correct error code, or do you >> want something different? or maybe even an assert? > > I'd take either EPIPE or EBADFD. > An assert would be an overkill, IMO. I have sent the fix to the list, but nobody reacted. Resending as an attachment to this message. -- Alexander E. Patrakov