u-boot-brain/drivers
Vitaly Kuzmichev 98fae9707f USB-CDC: Prevent rx_req being enqueued twice
After gadget reinitializaton (after tftp has been done once)
packet_received may become equal to 1 due to nuking OUT_EP
while disabling it in eth_reset_config.

rx_submit called from usb_eth_init queues rx_req first time.
But the first call of usb_eth_recv from NetLoop queues rx_req
again due to packet_received = 1.

The following flow shows the path of functions calls when
this happens:

 net/net.c:NetLoop
 |
 +-net/eth.c:eth_init
 |   ether.c:usb_eth_init
 |   |
 |   +-udc_driver:usb_gadget_handle_interrupts
 |   |   udc_driver:...
 |   |     ether.c:eth_setup
 |   |       ether.c:eth_set_config
 |   |         ether.c:eth_reset_config
 |   |           udc_driver:usb_ep_disable
 |   |             udc_driver:nuke
 |   |               ether.c:rx_complete
 |   |                 ether.c: packet_received = 1;
 |   |
 |   +-ether.c:rx_submit
 |       udc_driver:usb_ep_queue --- The first time when rx_req is queued
 |
 +-net/eth.c:eth_rx
     ether.c:usb_eth_recv
     |
     +-udc_driver:usb_gadget_handle_interrupts
     |   udc_driver:... --- no interrupts, returning
     +-ether.c: if (packet_received) { ...
         ether.c:rx_submit
           udc_driver:usb_ep_queue --- The second time!

Signed-off-by: Vitaly Kuzmichev <vkuzmichev@mvista.com>
2010-10-13 12:07:58 +02:00
..
bios_emulator ati_radeon: Support PCI virtual not eq bus mapping. 2010-04-08 15:30:47 +02:00
block ide: add mvsata_ide driver 2010-08-08 05:17:06 +05:30
dma powerpc/8xxx: Fix dma for 36bit addressing 2010-08-31 11:23:15 -05:00
fpga add block write function to spartan3 slave serial load 2010-03-24 11:08:43 -05:00
gpio ARMV7: S5P: rename from CONFIG_S5PC1XX to CONFIG_S5P 2010-08-26 17:33:23 +09:00
hwmon ds1621: Fix negative temperature readings 2010-10-06 23:01:22 +02:00
i2c ppc4xx: Move ppc4xx headers to powerpc include directory 2010-09-23 09:02:05 +02:00
input Remove HMI10 board support 2010-09-19 21:28:25 +02:00
misc led_display: split led display support into generic and hw-dependent parts 2010-10-12 22:44:33 +02:00
mmc Blackfin: bfin_sdh: clean up send_cmd 2010-10-02 16:00:37 -04:00
mtd Merge branch 'master' of git://git.denx.de/u-boot-cfi-flash 2010-10-12 20:49:27 +02:00
net smc91111: add write_hwaddr 2010-10-11 23:07:28 -07:00
pci powerpc/85xx & 86xx: Rework ft_fsl_pci_setup to not require aliases 2010-07-20 04:40:06 -05:00
pcmcia Remove HMI10 board support 2010-09-19 21:28:25 +02:00
power Prepare v2010.09-rc1 2010-09-10 00:16:19 +02:00
qe UEC PHY: Speed up initial PHY neg. 2010-10-11 22:47:48 -07:00
rtc AT91: add RTT and GPBR based RTC 2010-09-03 11:20:02 +02:00
serial ppc4xx: Remove now unused CONFIG_UART1_CONSOLE 2010-09-23 09:02:05 +02:00
spi Blackfin: bfin_spi: add optional DMA support 2010-10-02 16:00:36 -04:00
twserial drivers/twserial: Add protocol driver for "three wire serial" interface. 2009-03-30 09:38:36 +02:00
usb USB-CDC: Prevent rx_req being enqueued twice 2010-10-13 12:07:58 +02:00
video Merge branch 'next' of git://git.denx.de/u-boot-video 2010-10-05 14:31:48 +02:00
watchdog Convert at91 watchdog driver to new SoC access 2010-04-03 15:24:27 -05:00