cb27493df1
[ Upstream commit b7df09bb348016943f56b09dcaafe221e3f73947 ] 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. The loop of us122l->mmap_count check is dropped as well. The check is useless for the asynchronous operation with *_when_closed(). Fixes: 030a07e44129 ("ALSA: Add USB US122L driver") Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20241113111042.15058-3-tiwai@suse.de Signed-off-by: Sasha Levin <sashal@kernel.org> |
||
---|---|---|
.. | ||
Makefile | ||
us122l.c | ||
us122l.h | ||
usb_stream.c | ||
usb_stream.h | ||
usbus428ctldefs.h | ||
usbusx2y.c | ||
usbusx2y.h | ||
usbusx2yaudio.c | ||
usx2y.h | ||
usX2Yhwdep.c | ||
usX2Yhwdep.h | ||
usx2yhwdeppcm.c | ||
usx2yhwdeppcm.h |