mirror of
https://github.com/torvalds/linux.git
synced 2026-08-22 16:05:41 +02:00
usbtv doesn't support power management, so on system suspend the
.disconnect callback of the driver is called. The teardown sequence
includes a call to snd_card_free. Its implementation waits until the
refcount of the sound card device drops to zero, however, if its file is
open, snd_card_file_add takes a reference, which can't be dropped during
the suspend, because the userspace processes are already frozen at this
point. snd_card_free waits for completion forever, leading to a hang on
suspend.
This commit fixes this deadlock condition by replacing snd_card_free
with snd_card_free_when_closed, that doesn't wait until all references
are released, allowing suspend to progress.
Fixes:
|
||
|---|---|---|
| .. | ||
| airspy | ||
| as102 | ||
| au0828 | ||
| b2c2 | ||
| cpia2 | ||
| cx231xx | ||
| dvb-usb | ||
| dvb-usb-v2 | ||
| em28xx | ||
| go7007 | ||
| gspca | ||
| hackrf | ||
| hdpvr | ||
| msi2500 | ||
| pvrusb2 | ||
| pwc | ||
| s2255 | ||
| siano | ||
| stk1160 | ||
| stkwebcam | ||
| tm6000 | ||
| ttusb-budget | ||
| ttusb-dec | ||
| usbtv | ||
| uvc | ||
| zr364xx | ||
| Kconfig | ||
| Makefile | ||