linux/drivers/usb/class
Jia-Ju Bai b8b53adeca usb: cdc-wdm: Fix a sleep-in-atomic-context bug in service_outstanding_interrupt()
commit 6e22e3af7b upstream.

wdm_in_callback() is a completion handler function for the USB driver.
So it should not sleep. But it calls service_outstanding_interrupt(),
which calls usb_submit_urb() with GFP_KERNEL.

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>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-09-26 08:35:08 +02:00
..
cdc-acm.c usb: cdc_acm: Add quirk for Castles VEGA3000 2018-07-28 07:45:03 +02:00
cdc-acm.h cdc-acm: fix wrong pipe type on rx interrupt xfers 2016-09-07 08:32:43 +02:00
cdc-wdm.c usb: cdc-wdm: Fix a sleep-in-atomic-context bug in service_outstanding_interrupt() 2018-09-26 08:35:08 +02:00
Kconfig USB: regroup all depends on USB within an if USB block 2013-04-09 16:49:07 -07:00
Makefile USB: add USB test and measurement class driver 2008-10-17 14:40:51 -07:00
usblp.c usblp: do not set TASK_INTERRUPTIBLE before lock 2015-11-19 16:31:42 -08:00
usbtmc.c USB: usbtmc: add missing endpoint sanity check 2017-03-30 09:35:19 +02:00