mirror of
https://github.com/torvalds/linux.git
synced 2024-12-22 02:52:56 +00:00
4fccb0767f
This patch fixes an issue that usbhsg_queue_done() may cause kernel
panic when dma callback is running and usb_ep_disable() is called
by interrupt handler. (Especially, we can reproduce this issue using
g_audio with usb-dmac driver.)
For example of a flow:
usbhsf_dma_complete (on tasklet)
--> usbhsf_pkt_handler (on tasklet)
--> usbhsg_queue_done (on tasklet)
*** interrupt happened and usb_ep_disable() is called ***
--> usbhsg_queue_pop (on tasklet)
Then, oops happened.
Fixes:
|
||
---|---|---|
.. | ||
common.c | ||
common.h | ||
fifo.c | ||
fifo.h | ||
Kconfig | ||
Makefile | ||
mod_gadget.c | ||
mod_host.c | ||
mod.c | ||
mod.h | ||
pipe.c | ||
pipe.h | ||
rcar2.c | ||
rcar2.h | ||
rcar3.c | ||
rcar3.h |