This is a note to let you know that I've just added the patch titled ALSA: usb-audio: Fix last interface check for registration to the 5.15-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: alsa-usb-audio-fix-last-interface-check-for-registration.patch and it can be found in the queue-5.15 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 39efc9c8a973ddff5918191525d1679d0fb368ea Mon Sep 17 00:00:00 2001 From: Takashi Iwai <tiwai@xxxxxxx> Date: Thu, 15 Sep 2022 10:59:47 +0200 Subject: ALSA: usb-audio: Fix last interface check for registration From: Takashi Iwai <tiwai@xxxxxxx> commit 39efc9c8a973ddff5918191525d1679d0fb368ea upstream. The recent fix in commit 6392dcd1d0c7 ("ALSA: usb-audio: Register card at the last interface") tried to delay the card registration until the last found interface is probed. It assumed that the probe callback gets called for those later interfaces, but it's not always true; as the driver loops over the descriptor and probes the matching ones, it's not separately called via multiple probe calls. This results in the missing card registration, i.e. no sound device. For addressing this problem, replace the check whether the last interface is processed with usb_interface_claimed() instead of the comparison with the probe interface number. Fixes: 6392dcd1d0c7 ("ALSA: usb-audio: Register card at the last interface") Link: https://lore.kernel.org/r/20220915085947.7922-1-tiwai@xxxxxxx Signed-off-by: Takashi Iwai <tiwai@xxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- sound/usb/card.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/sound/usb/card.c +++ b/sound/usb/card.c @@ -883,7 +883,7 @@ static int usb_audio_probe(struct usb_in * one given via option */ if (check_delayed_register_option(chip) == ifnum || - chip->last_iface == ifnum) { + usb_interface_claimed(usb_ifnum_to_if(dev, chip->last_iface))) { err = snd_card_register(chip->card); if (err < 0) goto __error; Patches currently in stable-queue which might be from tiwai@xxxxxxx are queue-5.15/alsa-usb-audio-register-card-at-the-last-interface.patch queue-5.15/alsa-hda-realtek-add-intel-reference-ssid-to-support-headset-keys.patch queue-5.15/alsa-hda-beep-simplify-keep-power-at-enable-behavior.patch queue-5.15/alsa-hda-realtek-add-quirk-for-asus-gv601r-laptop.patch queue-5.15/alsa-oss-fix-potential-deadlock-at-unregistration.patch queue-5.15/alsa-usb-audio-fix-null-dererence-at-error-path.patch queue-5.15/alsa-rawmidi-drop-register_mutex-in-snd_rawmidi_free.patch queue-5.15/alsa-hda-realtek-correct-pin-configs-for-asus-g533z.patch queue-5.15/alsa-hda-realtek-remove-alc289_fixup_dual_spk-for-dell-5530.patch queue-5.15/alsa-usb-audio-fix-last-interface-check-for-registration.patch queue-5.15/alsa-usb-audio-add-quirk-to-enable-avid-mbox-3-suppo.patch queue-5.15/alsa-usb-audio-fix-potential-memory-leaks.patch queue-5.15/alsa-hda-hdmi-don-t-skip-notification-handling-durin.patch queue-5.15/drm-udl-restore-display-mode-on-resume.patch queue-5.15/alsa-dmaengine-increment-buffer-pointer-atomically.patch