diff options
author | 2018-06-20 11:55:08 +0800 | |
---|---|---|
committer | 2018-07-17 10:12:51 +0300 | |
commit | f36b507c14c4b6e634463a610294e9cb0065c8ea (patch) | |
tree | eae28b7d25ab25066aa0aec6436d554aa7347fc9 /tools/perf/scripts/python/export-to-postgresql.py | |
parent | usb: gadget: r8a66597: Fix two possible sleep-in-atomic-context bugs in init_controller() (diff) | |
download | wireguard-linux-f36b507c14c4b6e634463a610294e9cb0065c8ea.tar.xz wireguard-linux-f36b507c14c4b6e634463a610294e9cb0065c8ea.zip |
usb: gadget: r8a66597: Fix a possible sleep-in-atomic-context bugs in r8a66597_queue()
The driver may sleep in an interrupt handler.
The function call path (from bottom to top) in Linux-4.16.7 is:
[FUNC] r8a66597_queue(GFP_KERNEL)
drivers/usb/gadget/udc/r8a66597-udc.c, 1193:
r8a66597_queue in get_status
drivers/usb/gadget/udc/r8a66597-udc.c, 1301:
get_status in setup_packet
drivers/usb/gadget/udc/r8a66597-udc.c, 1381:
setup_packet in irq_control_stage
drivers/usb/gadget/udc/r8a66597-udc.c, 1508:
irq_control_stage in r8a66597_irq (interrupt handler)
To fix this bug, GFP_KERNEL is replaced with GFP_ATOMIC.
This bug is found by my static analysis tool (DSAC-2) and checked by
my code review.
Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions