Re: [PATCH v2] ALSA: firewire-tascam: Do not drop unread control events

Takashi Sakamoto
2026-05-04T04:07:27Z

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@vger.kernel.org
> Suggested-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
> Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
> ---
> 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@gmail.com
> ---
> sound/firewire/tascam/tascam-hwdep.c | 1 +
> 1 file changed, 1 insertion(+)

Looks good to me;)

Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>

Or as a second Co-Author,
Co-developed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>

To maintainer, please feel free to assign the above tags according to
your preferences.

Thanks

Takashi Sakamoto