From b97a11ecf0a1ed4cbed7933e3b013438d9ac9d7f Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Tue, 11 Nov 2025 16:17:16 +0100 Subject: [PATCH] seq: fix snd_seq_drain_output return value for partial drain The processed value was not properly updated thus the partial flush was not notified properly. Signed-off-by: Jaroslav Kysela --- src/seq/seq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/seq/seq.c b/src/seq/seq.c index 4807d481..49f013e0 100644 --- a/src/seq/seq.c +++ b/src/seq/seq.c @@ -4449,13 +4449,14 @@ int snd_seq_drain_output(snd_seq_t *seq) while (seq->obufused > 0) { result = seq->ops->write(seq, seq->obuf, seq->obufused); if (result < 0) { - if (result == -EAGAIN && processed) + if (result == -EAGAIN && processed > 0) return seq->obufused; return result; } if ((size_t)result < seq->obufused) memmove(seq->obuf, seq->obuf + result, seq->obufused - result); seq->obufused -= result; + processed += result; } return 0; } -- 2.47.3