linux/sound/usb
Nguyen Ngoc Thang dbd9d1cbf9 ALSA: usb-audio: fix list_add double-add in push_back_to_ready_list
stop_urbs() clears ep->ready_playback_urbs with a bare INIT_LIST_HEAD()
instead of unlinking each queued snd_urb_ctx. If a URB survives past
wait_clear_urbs()'s forced STOPPING->STOPPED timeout, its ctx is left
looking "linked" (stale next/prev) even though the list head has
forgotten it. When the endpoint later restarts and re-queues that same
ctx onto the (now real) ready list, and the old URB's completion
handler then calls push_back_to_ready_list() for it a second time, the
ctx is still the list's own tail and list_add's double-add check trips:

  kernel BUG at lib/list_debug.c:35 (list_add double add)

Guard push_back_to_ready_list() with a list_empty() check so a
still-linked ctx isn't re-added, and make stop_urbs() actually unlink
each ctx via list_del_init() instead of only resetting the head, so a
dropped ctx doesn't keep looking linked to that guard.

Reported-by: syzbot+9fe3b8d9f5c64ff410a7@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=9fe3b8d9f5c64ff410a7
Signed-off-by: Nguyen Ngoc Thang <ngocthang2710.1999@gmail.com>
Link: https://patch.msgid.link/20260915163110.58124-1-ngocthang2710.1999@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-09-16 09:30:17 +02:00
..
6fire ALSA: 6fire: fix OOB write from device-reported iso length 2026-09-14 11:45:24 +02:00
bcd2000 ALSA: bcd2000: Fix race between rawmidi and disconnect 2026-09-12 14:18:14 +02:00
caiaq ALSA: caiaq: Decoupling ep1_in_urb in caiaq dev 2026-09-06 10:00:47 +02:00
hiface ALSA: usb: hiface: Avoid embedded URBs 2026-09-06 10:01:42 +02:00
line6 ALSA: usb-audio/line6: Add support for POD HD PRO 2026-04-21 10:07:45 +02:00
misc ALSA: usb: ua101: Avoid embedded URBs 2026-09-06 10:01:42 +02:00
qcom ALSA: usb-audio: qcom: Free QMI handle 2026-06-25 13:56:21 +02:00
usx2y ALSA: us122l: Prevent write upgrades for read mappings 2026-09-08 16:22:50 +02:00
card.c ALSA: usb-audio: Complete cleanup after system-resume errors 2026-08-25 10:01:44 +02:00
card.h ALSA: usb-audio: Clamp implicit feedback packet count to URB capacity 2026-09-13 09:04:03 +02:00
clock.c ALSA: usb-audio: add QUIRK_FLAG_ALWAYS_SET_RATE for Mackie DLZ Creator XS 2026-08-09 12:29:33 +02:00
clock.h ALSA: usb-audio: Constify audioformat pointer references 2020-11-23 15:15:36 +01:00
endpoint.c ALSA: usb-audio: fix list_add double-add in push_back_to_ready_list 2026-09-16 09:30:17 +02:00
endpoint.h ALSA: usb-audio: Remove unused function declaration 2023-08-01 16:56:57 +02:00
fcp.c ALSA: usb-audio: Guard FCP protocol transfers 2026-08-31 09:54:18 +02:00
fcp.h ALSA: FCP: Add Focusrite Control Protocol driver 2025-01-18 12:00:38 +01:00
format.c ALSA: usb-audio: stop parsing UAC2 rates at MAX_NR_RATES 2026-04-16 10:33:19 +02:00
format.h
helper.c ALSA: usb-audio: Export USB SND APIs for modules 2025-04-11 13:02:30 +02:00
helper.h ALSA: usb-audio: Support multiple control interfaces 2024-08-12 16:17:46 +02:00
implicit.c ALSA: usb-audio: Add capture quirk for Behringer FCA1616 2026-09-14 08:16:12 +02:00
implicit.h ALSA: usb-audio: Add new quirk FIXED_RATE for JBL Quantum810 Wireless 2022-12-22 09:13:54 +01:00
Kconfig ALSA:usb:qcom: add AUXILIARY_BUS to Kconfig dependencies 2026-03-18 12:36:39 +01:00
Makefile ALSA: usb-audio: qcom: Introduce QC USB SND offloading support 2025-04-11 13:02:32 +02:00
media.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
media.h
midi.c ALSA: usb-audio: fix OOB write in snd_usbmidi_us122l_output() 2026-09-01 12:36:53 +02:00
midi.h ALSA: usb-audio: Manage number of rawmidis globally 2023-05-23 12:11:00 +02:00
midi2.c ALSA: usb: Fix UAF at delayed release of MIDI2 EPs 2026-08-08 17:51:43 +02:00
midi2.h ALSA: usb-audio: USB MIDI 2.0 UMP support 2023-05-23 12:11:02 +02:00
mixer_maps.c ALSA: usb-audio: skip the broken mute control on AVerMedia GC553Pro 2026-09-14 17:52:46 +02:00
mixer_quirks.c ALSA: usb-audio: Add PM guards to RME Digiface controls 2026-08-31 09:54:18 +02:00
mixer_quirks.h ALSA: usb-audio: Drop CONFIG_PM ifdefs 2021-12-06 10:19:40 +01:00
mixer_s1810c.c ALSA: usb-audio: Add PM guard to Studio 1810c controls 2026-08-31 09:54:18 +02:00
mixer_s1810c.h ALSA: usb-audio: Add support for Presonus Studio 1810c 2020-02-15 09:46:16 +01:00
mixer_scarlett.c ALSA: usb-audio: Add PM guard to Scarlett meter reads 2026-08-31 09:54:18 +02:00
mixer_scarlett.h ALSA: usb-audio: add mixer support for Focusrite Forte 2026-01-27 09:58:50 +01:00
mixer_scarlett2.c ALSA: usb-audio: Guard Scarlett2 protocol transfers 2026-08-31 09:54:18 +02:00
mixer_scarlett2.h ALSA: scarlett2: Rename scarlett_gen2 to scarlett2 2023-10-27 11:22:59 +02:00
mixer_us16x08.c ALSA: usb-audio: Add PM guards to US-16x08 transfers 2026-08-31 09:54:18 +02:00
mixer_us16x08.h
mixer.c ALSA: usb-audio: Reverse MIXER_GET_CUR_BROKEN as MIXER_GET_CUR_OK 2026-08-23 11:03:34 +02:00
mixer.h ALSA: scarlett2: Use a private URB for the notification endpoint 2026-08-10 13:36:20 +02:00
pcm.c ALSA: usb-audio: Use the right limit for PCM OOB check 2026-01-21 09:22:12 +01:00
pcm.h ALSA: usb-audio: Export USB SND APIs for modules 2025-04-11 13:02:30 +02:00
power.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
power.h ALSA: usb-audio: Support multiple control interfaces 2024-08-12 16:17:46 +02:00
proc.c ALSA: usb-audio: Replace manual mutex/spinlock with guard() 2025-08-12 08:36:17 +02:00
proc.h
quirks-table.h ALSA: usb-audio: Skip mixer creation on M-Audio Venom 2026-08-25 09:54:58 +02:00
quirks.c ALSA: usb-audio: Add quirk flags for Behringer UV1 2026-09-07 09:37:46 +02:00
quirks.h ALSA: usb-audio: Make some quirk-string helpers local 2026-07-29 09:47:22 +02:00
stream.c ALSA: usb-audio: Avoid potential endless loop in convert_chmap_v3() 2026-04-28 08:14:21 +02:00
stream.h ALSA: usb-audio: Fix potential leak of pd at parsing UAC3 streams 2026-04-28 08:13:50 +02:00
usbaudio.h ALSA: usb-audio: Reverse MIXER_GET_CUR_BROKEN as MIXER_GET_CUR_OK 2026-08-23 11:03:34 +02:00
validate.c ALSA: usb-audio: Use correct version for UAC3 header validation 2026-02-26 07:37:29 +01:00