linux/drivers/usb/musb
Andrew Goodbody 743b34f449 usb: musb: Stop bulk endpoint while queue is rotated
[ Upstream commit 7b2c17f829 ]

Ensure that the endpoint is stopped by clearing REQPKT before
clearing DATAERR_NAKTIMEOUT before rotating the queue on the
dedicated bulk endpoint.
This addresses an issue where a race could result in the endpoint
receiving data before it was reprogrammed resulting in a warning
about such data from musb_rx_reinit before it was thrown away.
The data thrown away was a valid packet that had been correctly
ACKed which meant the host and device got out of sync.

Signed-off-by: Andrew Goodbody <andrew.goodbody@cambrionix.com>
Cc: stable@vger.kernel.org
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
History 2016-07-11 11:10:34 -04:00
..
am35x.c usb: hub: rename khubd to hub_wq in documentation and comments 2014-09-23 22:33:19 -07:00
blackfin.c usb: musb: backfin: Introduce the use of the managed version of kzalloc 2014-06-30 12:26:57 -05:00
blackfin.h usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
cppi_dma.c usb: musb: dma: merge ->start/stop into create/destroy 2013-07-29 13:53:18 +03:00
cppi_dma.h headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
da8xx.c usb: phy: generic: allow multiples calls to usb_phy_generic_register() 2014-04-21 14:07:25 -05:00
davinci.c usb: musb: davinci: use devm_ functions. 2014-06-30 12:26:48 -05:00
davinci.h usb: musb: davinci: Fix build breakage 2012-06-04 18:29:42 +03:00
jz4740.c usb: musb: register nop transceiver driver for jz4740 2014-07-10 08:36:50 -05:00
Kconfig usb: musb: USB_TI_CPPI41_DMA requires dmaengine support 2016-01-22 12:24:46 -05:00
Makefile usb: musb: add support for JZ4740 usb device controller 2013-12-20 09:53:24 -06:00
musb_am335x.c usb: musb: Fix panic upon musb_am335x module removal 2014-06-27 10:53:06 -05:00
musb_core.c usb: musb: use new USB_RESUME_TIMEOUT 2015-05-17 19:11:59 -04:00
musb_core.h usb: musb: core: Convert the musb_platform_reset to have a return value. 2014-07-16 09:59:58 -05:00
musb_cppi41.c usb: musb: cppi41: correct the macro name EP_MODE_AUTOREG_* 2016-04-21 07:58:08 -04:00
musb_debug.h usb: musb: remove extern qualifier from musb_debug.h header 2011-12-21 13:21:02 +02:00
musb_debugfs.c usb: remove use of __devinit 2012-11-21 13:27:16 -08:00
musb_dma.h usb: musb: introduce dma_channel.rx_packet_done 2014-06-30 14:26:24 -05:00
musb_dsps.c usb: musb: musb_dsps: fix NULL pointer in suspend 2014-10-23 09:55:43 -05:00
musb_gadget.c usb: gadget: Refactor request completion 2014-09-25 16:58:50 +02:00
musb_gadget.h usb: musb: add Kconfig options for HOST, GAGDET or DUAL_ROLE modes 2013-05-28 19:22:23 +03:00
musb_gadget_ep0.c usb: musb: gadget: read ep0 fifo only if rxcount is non zero 2013-04-02 11:42:50 +03:00
musb_host.c usb: musb: Stop bulk endpoint while queue is rotated 2016-07-11 11:10:34 -04:00
musb_host.h usb: musb: fix prototype for musb_port_reset 2013-12-20 15:05:43 -06:00
musb_io.h usb: musb: use io{read,write}*_rep accessors 2012-12-17 17:15:13 -08:00
musb_regs.h usb: Fixed a few typos 2014-09-23 22:15:18 -07:00
musb_virthub.c usb: musb: host: rely on port_mode to call musb_start() 2015-08-04 14:22:35 -04:00
musbhsdma.c usb: musb: dma: merge ->start/stop into create/destroy 2013-07-29 13:53:18 +03:00
musbhsdma.h usb: musb: remove generic_interrupt 2012-11-06 15:32:13 +02:00
omap2430.c usb: musb: omap2430: make sure clocks are enabled when running mailbox 2014-04-15 12:08:02 -05:00
omap2430.h usb: start using the control module driver 2013-01-25 12:27:24 +02:00
tusb6010.c usb: hub: rename khubd to hub_wq in documentation and comments 2014-09-23 22:33:19 -07:00
tusb6010.h usb: musb: tusb6010: Use musb->tusb_revision instead of tusb_get_revision call. 2014-05-16 12:16:31 -05:00
tusb6010_omap.c usb: musb: tusb6010: Use musb->tusb_revision instead of tusb_get_revision call. 2014-05-16 12:16:31 -05:00
ux500.c usb: patches for v3.17 merge window 2014-07-21 11:33:41 -07:00
ux500_dma.c usb: musb: ux500: fix decimal printf format specifiers prefixed with 0x 2014-08-19 09:24:45 -05:00