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 patrakov@gmail.com
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.