a3dbff6eec
The driver may sleep under a spin lock, and the function call path is: snd_cx18_pcm_hw_free (acquire the lock by spin_lock_irqsave) vfree --> may sleep To fix it, the "substream->runtime->dma_area" is passed to a temporary value, and mark it NULL when holding the lock. The memory is freed by vfree through the temporary value outside the lock holding. Signed-off-by: Jia-Ju Bai <baijiaju1990@163.com> [hans.verkuil@cisco.com: removed unnecessary 'if (dma_area)'] Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> |
||
---|---|---|
.. | ||
cx18-alsa-main.c | ||
cx18-alsa-mixer.c | ||
cx18-alsa-mixer.h | ||
cx18-alsa-pcm.c | ||
cx18-alsa-pcm.h | ||
cx18-alsa.h | ||
cx18-audio.c | ||
cx18-audio.h | ||
cx18-av-audio.c | ||
cx18-av-core.c | ||
cx18-av-core.h | ||
cx18-av-firmware.c | ||
cx18-av-vbi.c | ||
cx18-cards.c | ||
cx18-cards.h | ||
cx18-controls.c | ||
cx18-controls.h | ||
cx18-driver.c | ||
cx18-driver.h | ||
cx18-dvb.c | ||
cx18-dvb.h | ||
cx18-fileops.c | ||
cx18-fileops.h | ||
cx18-firmware.c | ||
cx18-firmware.h | ||
cx18-gpio.c | ||
cx18-gpio.h | ||
cx18-i2c.c | ||
cx18-i2c.h | ||
cx18-io.c | ||
cx18-io.h | ||
cx18-ioctl.c | ||
cx18-ioctl.h | ||
cx18-irq.c | ||
cx18-irq.h | ||
cx18-mailbox.c | ||
cx18-mailbox.h | ||
cx18-queue.c | ||
cx18-queue.h | ||
cx18-scb.c | ||
cx18-scb.h | ||
cx18-streams.c | ||
cx18-streams.h | ||
cx18-vbi.c | ||
cx18-vbi.h | ||
cx18-version.h | ||
cx18-video.c | ||
cx18-video.h | ||
cx23418.h | ||
Kconfig | ||
Makefile |