ALSA: usb-audio: Fix packet size calculation regression
authorTakashi Iwai <tiwai@suse.de>
Fri, 1 Oct 2021 10:54:25 +0000 (12:54 +0200)
committerTakashi Iwai <tiwai@suse.de>
Fri, 1 Oct 2021 10:54:56 +0000 (12:54 +0200)
The commit d215f63d49da ("ALSA: usb-audio: Check available frames for
the next packet size") introduced the available frame size check, but
the conversion forgot to initialize the temporary variable properly,
and it resulted in a bogus calculation.  This patch fixes it.

Fixes: d215f63d49da ("ALSA: usb-audio: Check available frames for the next packet size")
Reported-by: Colin Ian King <colin.king@canonical.com>
Link: https://lore.kernel.org/r/20211001104417.14291-1-colin.king@canonical.com
Link: https://lore.kernel.org/r/20211001105425.16191-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/endpoint.c

index 42c0d2d..743b828 100644 (file)
@@ -182,7 +182,7 @@ static int next_packet_size(struct snd_usb_endpoint *ep, unsigned int avail)
        if (ep->fill_max)
                return ep->maxframesize;
 
-       sample_accum += ep->sample_rem;
+       sample_accum = ep->sample_accum + ep->sample_rem;
        if (sample_accum >= ep->pps) {
                sample_accum -= ep->pps;
                ret = ep->packsize[1];