mirror of
https://github.com/torvalds/linux.git
synced 2024-12-17 00:21:32 +00:00
8d11eb847d
The driver may sleep in a interrupt handler. The function call paths (from bottom to top) in Linux-4.16 are: [FUNC] kzalloc(GFP_KERNEL) drivers/media/pci/ivtv/ivtv-yuv.c, 938: kzalloc in ivtv_yuv_init drivers/media/pci/ivtv/ivtv-yuv.c, 960: ivtv_yuv_init in ivtv_yuv_next_free drivers/media/pci/ivtv/ivtv-yuv.c, 1126: ivtv_yuv_next_free in ivtv_yuv_setup_stream_frame drivers/media/pci/ivtv/ivtv-irq.c, 827: ivtv_yuv_setup_stream_frame in ivtv_irq_dec_data_req drivers/media/pci/ivtv/ivtv-irq.c, 1013: ivtv_irq_dec_data_req in ivtv_irq_handler To fix this bug, GFP_KERNEL is replaced with GFP_ATOMIC. This bug is found by my static analysis tool DSAC. Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> |
||
---|---|---|
.. | ||
ivtv-alsa-main.c | ||
ivtv-alsa-pcm.c | ||
ivtv-alsa-pcm.h | ||
ivtv-alsa.h | ||
ivtv-cards.c | ||
ivtv-cards.h | ||
ivtv-controls.c | ||
ivtv-controls.h | ||
ivtv-driver.c | ||
ivtv-driver.h | ||
ivtv-fileops.c | ||
ivtv-fileops.h | ||
ivtv-firmware.c | ||
ivtv-firmware.h | ||
ivtv-gpio.c | ||
ivtv-gpio.h | ||
ivtv-i2c.c | ||
ivtv-i2c.h | ||
ivtv-ioctl.c | ||
ivtv-ioctl.h | ||
ivtv-irq.c | ||
ivtv-irq.h | ||
ivtv-mailbox.c | ||
ivtv-mailbox.h | ||
ivtv-queue.c | ||
ivtv-queue.h | ||
ivtv-routing.c | ||
ivtv-routing.h | ||
ivtv-streams.c | ||
ivtv-streams.h | ||
ivtv-udma.c | ||
ivtv-udma.h | ||
ivtv-vbi.c | ||
ivtv-vbi.h | ||
ivtv-version.h | ||
ivtv-yuv.c | ||
ivtv-yuv.h | ||
ivtvfb.c | ||
Kconfig | ||
Makefile |