Hi Salvatore,
On Wed, Nov 04, 2026 at 05:49:09AM +0100, Salvatore Bonaccorso wrote:
> Would it be possible that you check with 6.12.115-2 and the commit
> 70b4db7d2581 ("ALSA: usb-audio: Use the right limit for PCM OOB
> check") on top if that fixes your problem?
I can confirm that 70b4db7d2581 solves the issue with the MOTU M2.
--- linux-6.12.115/sound/usb/pcm.c 2026-10-30 13:05:25.000000000 +0100
+++ /tmp/pcm.c 2026-11-04 13:28:08.737616651 +0100
@@ -1505,7 +1505,8 @@
for (i = 0; i < ctx->packets; i++) {
counts = snd_usb_endpoint_next_packet_size(ep, ctx, i, avail);
- if (counts < 0 || frames + counts >= ep->max_urb_frames)
+ if (counts < 0 ||
+ (frames + counts) * stride > ctx->buffer_size)
break;
/* set up descriptor */
urb->iso_frame_desc[i].offset = frames * stride;
regards,
Sebastian
----
For the record, here is what I did:
In each step, testing means:
In one shell:
jackd -dalsa -dhw:1 -r48000 -p256 -n3
In a second shell:
audacity
Test is successful, if I can record and playback my voice.
Test is not successful, if I cannot record/play and jackd displays:
JackPosixProcessSync::LockedTimedWait error usec = 5000000 err =
Connection timed out
Step 1: verify again that with Debian kernel 6.12.113+deb13-amd64
the test is successful
Step 2: verify again that with Debian kernel 6.12.115+deb13.1-amd64
the test is not successful
Step 3: build a kernel from the sources without the patch,
the test is not successful
mkdir k1
cd k1
apt-get update
apt-get source linux
touch empty.patch
cd linux-6.12.115/
debian/bin/test-patches ../empty.patch
cd ..
sudo apt-get install \
./linux-headers-6.12+unreleased-amd64_6.12.115-2a~test_amd64.deb \
./linux-headers-6.12+unreleased-common_6.12.115-2a~test_all.deb \
./linux-image-6.12+unreleased-amd64-unsigned_6.12.115-2a~test_amd64.deb \
./linux-image-amd64-signed-template_6.12.115-2a~test_amd64.deb \
./linux-kbuild-6.12+unreleased_6.12.115-2a~test_amd64.deb \
./linux-libc-dev_6.12.115-2a~test_all.deb
sudo shutdown -r now
boot into that kernel, perform the test,
test is not successful, as expected.
reboot again, with Debian kernel 6.12.115+deb13.1-amd64
remove that test kernel:
sudo apt-get purge \
linux-headers-6.12+unreleased-amd64 \
linux-headers-6.12+unreleased-common \
linux-image-6.12+unreleased-amd64-unsigned \
linux-image-amd64-signed-template \
linux-kbuild-6.12+unreleased
Step 4: build a kernel from the sources with patch 70b4db7d2581,
the test is successful
mkdir k2
cd k2
apt-get source linux
curl -s https://github.com/torvalds/linux/commit/70b4db7d2581.patch | \
sed -n '/^diff /,$p' > 70b4db7d2581.patch
cp linux-6.12.115/sound/usb/pcm.c /tmp/pcm.c
patch -l /tmp/pcm.c < 70b4db7d2581.patch
diff -u linux-6.12.115/sound/usb/pcm.c /tmp/pcm.c > 70b4db7d2581-indented.patch
cd linux-6.12.115/
debian/bin/test-patches ../70b4db7d2581-indented.patch
cd ..
sudo apt-get install \
./linux-headers-6.12+unreleased-amd64_6.12.115-2a~test_amd64.deb \
./linux-headers-6.12+unreleased-common_6.12.115-2a~test_all.deb \
./linux-image-6.12+unreleased-amd64-unsigned_6.12.115-2a~test_amd64.deb \
./linux-image-amd64-signed-template_6.12.115-2a~test_amd64.deb \
./linux-kbuild-6.12+unreleased_6.12.115-2a~test_amd64.deb \
./linux-libc-dev_6.12.115-2a~test_all.deb
sudo shutdown -r now
boot into that kernel, perform the test,
test is successful!