Re: [PATCH v2] ALSA: firewire-tascam: Do not drop unread control events
From: Takashi Sakamoto
Date: Mon May 04 2026 - 00:07:34 EST
Hi,
On Sun, May 03, 2026 at 09:55:52PM -0300, Cássio Gabriel wrote:
> tscm_hwdep_read_queue() copies as many queued control events as fit in
> the userspace buffer. When the buffer is smaller than the current
> contiguous queue segment, length is rounded down to the number of bytes
> that can be copied.
>
> However, after copying that shortened length, the code advances pull_pos
> to the original tail_pos, marking the whole contiguous segment as
> consumed. Any events between the copied portion and tail_pos are lost.
>
> Limit tail_pos to the position after the entries actually copied before
> updating pull_pos. When the whole segment fits, this is equivalent to the
> old tail_pos update; when the buffer is smaller, the remaining events
> stay queued for the next read.
>
> Fixes: a8c0d13267a4 ("ALSA: firewire-tascam: notify events of change of state for userspace applications")
> Cc: stable@xxxxxxxxxxxxxxx
> Suggested-by: Takashi Sakamoto <o-takashi@xxxxxxxxxxxxx>
> Signed-off-by: Cássio Gabriel <cassiogabrielcontato@xxxxxxxxx>
> ---
> Changes in v2:
> - Recompute tail_pos after shortening length instead of adding a separate
> entries_copied variable, as suggested.
> - Add Suggested-by tag.
> - Link to v1: https://patch.msgid.link/20260501-alsa-firewire-tascam-read-queue-v1-1-7baa4ba1a4de@xxxxxxxxx
> ---
> sound/firewire/tascam/tascam-hwdep.c | 1 +
> 1 file changed, 1 insertion(+)
Looks good to me;)
Reviewed-by: Takashi Sakamoto <o-takashi@xxxxxxxxxxxxx>
Or as a second Co-Author,
Co-developed-by: Takashi Sakamoto <o-takashi@xxxxxxxxxxxxx>
Signed-off-by: Takashi Sakamoto <o-takashi@xxxxxxxxxxxxx>
To maintainer, please feel free to assign the above tags according to
your preferences.
Thanks
Takashi Sakamoto