cdf3049537
Performing USB POPI during audio stream can cause a situation where usb_audio_disconnect() gets stuck. Consider a scenario, handle_uaudio_stream_req() increases the usage_count and calls enable_audio_stream(). If disconnect happens during this time, usb_audio_disconnect() waits for usage_count) to be zero. And in the meantime, handle_uaudio_stream_req() will decrease the usage_count, but usb_audio_disconnect will not proceed since wake_up() wasn't called. wait_event() requires wake_up() to be called after changing any variable that could change the result of the wait condition. Fix this by calling wake_up() in handle_uaudio_stream_req() after decreasing the usage_count. Change-Id: Ia4d8e7ab789d284476dfdd28eb53d81c8ac9b5b8 Signed-off-by: Prashanth K <quic_prashk@quicinc.com> |
||
---|---|---|
.. | ||
ac97 | ||
aoa | ||
arm | ||
atmel | ||
core | ||
drivers | ||
firewire | ||
hda | ||
i2c | ||
isa | ||
mips | ||
oss | ||
parisc | ||
pci | ||
pcmcia | ||
ppc | ||
sh | ||
soc | ||
sparc | ||
spi | ||
synth | ||
usb | ||
virtio | ||
x86 | ||
xen | ||
ac97_bus.c | ||
Kconfig | ||
last.c | ||
Makefile | ||
sound_core.c |