linux-next/sound
Takashi Iwai dafb28f02b ALSA: usx2y: Use snd_card_free_when_closed() at disconnection
The USB disconnect callback is supposed to be short and not too-long
waiting.  OTOH, the current code uses snd_card_free() at
disconnection, but this waits for the close of all used fds, hence it
can take long.  It eventually blocks the upper layer USB ioctls, which
may trigger a soft lockup.

An easy workaround is to replace snd_card_free() with
snd_card_free_when_closed().  This variant returns immediately while
the release of resources is done asynchronously by the card device
release at the last close.

Fixes: 230cd5e248 ("[ALSA] prevent oops & dead keyboard on usb unplugging while the device is be ing used")
Reported-by: syzbot+73582d08864d8268b6fd@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=73582d08864d8268b6fd
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20241113111042.15058-2-tiwai@suse.de
2024-11-13 13:33:46 +01:00
..
ac97 driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
aoa ALSA: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-09-20 17:44:52 +02:00
arm sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
atmel sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
core ALSA: pcm: Define snd_pcm_mmap_data_{open|close}() locally 2024-11-13 13:33:28 +01:00
drivers sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
firewire Merge branch 'for-linus' into for-next 2024-11-05 13:03:12 +01:00
hda ASoC: Fixes for v6.12 2024-10-30 14:46:35 +01:00
i2c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
isa ALSA: gus: Fix some error handling paths related to get_bpos() usage 2024-10-04 09:02:30 +02:00
mips sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
oss sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
parisc ALSA: misc: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:13 +02:00
pci Merge branch 'for-linus' into for-next 2024-11-05 13:03:12 +01:00
pcmcia ALSA: vxpocket: Fix a typo at conversion to dev_*() 2024-08-08 20:23:41 +02:00
ppc sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
sh sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
soc ASoC: codecs: wcd937x: relax the AUX PDM watchdog 2024-10-29 14:11:00 +00:00
sparc sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
spi ALSA: spi: Drop NULL check for snd_ctl_remove() 2024-06-18 12:54:34 +02:00
synth ALSA: emux: Use standard print API 2024-08-08 07:49:46 +02:00
usb ALSA: usx2y: Use snd_card_free_when_closed() at disconnection 2024-11-13 13:33:46 +01:00
virtio virtio: rename virtio_find_vqs_info() to virtio_find_vqs() 2024-07-17 05:20:58 -04:00
x86 Merge drm/drm-next into drm-intel-next 2024-06-19 11:38:31 +03:00
xen ALSA: xen-front: remove unused struct 'alsa_sndif_hw_param' 2024-06-13 14:14:46 +02:00
ac97_bus.c ALSA: ac97: legacy: Add missing module description 2024-05-09 10:13:07 +02:00
Kconfig sound: Make CONFIG_SND depend on INDIRECT_IOMEM instead of UML 2024-10-10 16:11:18 +02:00
last.c
Makefile ALSA: core: Use *-y instead of *-objs in Makefile 2024-05-08 18:17:32 +02:00
sound_core.c sound: make all 'class' structures const 2023-06-21 07:29:10 +02:00