From 6b186281a11194be8349d6b14c3d605efcfaf037 Mon Sep 17 00:00:00 2001 From: Denis Kulikov Date: Mon, 26 Oct 2026 02:18:49 +0300 Subject: [PATCH] ALSA: usb-audio: Rate-limit URB submission error at stream start When two USB audio devices share a USB 2.0 hub (here a headset and a microphone), there may not be enough isochronous bandwidth to start the second stream, and usb_submit_urb() fails with -ENOSPC. PipeWire keeps retrying to start the stream every ~20 ms, and every attempt logs usb 2-1.1: cannot submit urb 0, error -28: not enough bandwidth On my desktop this was printed up to 94 times per second and flooded the kernel log. Use usb_audio_err_ratelimited() for this message, as commit 2db2be5607c4 ("ALSA: usb-audio: Rate limit usb_set_interface error reporting") already did for a neighbouring message in the same file. Tested on that desktop (X79, Linux 7.3) with the headset and the microphone on one hub, starting playback and capture on both for 20 seconds: the stock snd-usb-audio module printed the message 580 times, the patched one printed it 50 times and suppressed the rest. Signed-off-by: Denis Kulikov Link: https://patch.msgid.link/20261025231849.148149-1-dar1knessx@gmail.com Signed-off-by: Takashi Iwai --- sound/usb/endpoint.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c index 9c844c55ad3f..8dd0b3525e4b 100644 --- a/sound/usb/endpoint.c +++ b/sound/usb/endpoint.c @@ -1642,9 +1642,9 @@ int snd_usb_endpoint_start(struct snd_usb_endpoint *ep) err = -ENODEV; if (err < 0) { if (!atomic_read(&ep->chip->shutdown)) - usb_audio_err(ep->chip, - "cannot submit urb %d, error %d: %s\n", - i, err, usb_error_string(err)); + usb_audio_err_ratelimited(ep->chip, + "cannot submit urb %d, error %d: %s\n", + i, err, usb_error_string(err)); goto __error; } set_bit(i, &ep->active_mask);