musb_gadget_queue() adds the passed request to musb_ep::req_list. If the
endpoint is idle and it is the first request then it invokes
musb_queue_resume_work(). If the function returns an error then the
error is passed to the caller without any clean-up and the request
remains enqueued on the list. If the caller enqueues the request again
then the list corrupts.
Remove the request from the list on error.
Fixes:
|
||
---|---|---|
.. | ||
am35x.c | ||
cppi_dma.c | ||
cppi_dma.h | ||
da8xx.c | ||
davinci.c | ||
davinci.h | ||
jz4740.c | ||
Kconfig | ||
Makefile | ||
mediatek.c | ||
musb_core.c | ||
musb_core.h | ||
musb_cppi41.c | ||
musb_debug.h | ||
musb_debugfs.c | ||
musb_dma.h | ||
musb_dsps.c | ||
musb_gadget_ep0.c | ||
musb_gadget.c | ||
musb_gadget.h | ||
musb_host.c | ||
musb_host.h | ||
musb_io.h | ||
musb_regs.h | ||
musb_trace.c | ||
musb_trace.h | ||
musb_virthub.c | ||
musbhsdma.c | ||
omap2430.c | ||
omap2430.h | ||
sunxi.c | ||
tusb6010_omap.c | ||
tusb6010.c | ||
tusb6010.h | ||
ux500_dma.c | ||
ux500.c |