u-boot/net
Joe Hershberger ac3f26cc15 net: Don't overwrite waiting packets with asynchronous replies
Peter originally sent a fix, but it breaks a number of other things.
This addresses the original reported issue in a different way.

That report was:

> U-Boot has 1 common buffer to send Ethernet frames, pointed to by
> net_tx_packet.  When sending to an IP address without knowing the MAC
> address, U-Boot makes an ARP request (using the arp_tx_packet buffer)
> to find out the MAC address of the IP addressr. When a matching ARP
> reply is received, U-Boot continues sending the frame stored in the
> net_tx_packet buffer.
>
> However, in the mean time, if U-Boot needs to send out any network
> packets (e.g. replying ping packets or ARP requests for its own IP
> address etc.), it will use the net_tx_packet buffer to prepare the
> new packet. Thus this buffer is no longer the original packet meant
> to be transmitted after the ARP reply. The original packet will be
> lost.

This instead uses the ARP tx buffer to send async replies in the case
where we are actively waiting for an ARP reply.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>

Reported-by: Tran Tien Dat <peter.trantiendat@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
2018-10-10 12:29:01 -05:00
..
arp.c net: Don't overwrite waiting packets with asynchronous replies 2018-10-10 12:29:01 -05:00
arp.h net: Don't overwrite waiting packets with asynchronous replies 2018-10-10 12:29:01 -05:00
bootp.c net: Add option to prefer bootp/dhcp serverip 2018-07-02 14:14:21 -05:00
bootp.h net: Use packed structures for networking 2017-08-07 15:18:31 -05:00
cdp.c SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
cdp.h SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
checksum.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dns.c env: Rename setenv() to env_set() 2017-08-16 08:22:18 -04:00
dns.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
eth-uclass.c net: eth-uclass: Fix for DM USB ethernet support 2018-08-21 16:21:37 +02:00
eth_common.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
eth_internal.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
eth_legacy.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fastboot.c net: fastboot: Fix build when FASTBOOT_FLASH is disabled 2018-07-02 14:14:20 -05:00
Kconfig net: Move net command options to the cmd menu 2018-04-13 15:48:05 -05:00
link_local.c env: Rename some other getenv()-related functions 2017-08-16 08:31:11 -04:00
link_local.h net: Add link-local addressing support 2012-05-23 17:53:08 -05:00
Makefile net: Add new wol command - Wake on LAN 2018-07-02 14:14:20 -05:00
net.c net: Don't overwrite waiting packets with asynchronous replies 2018-10-10 12:29:01 -05:00
net_rand.h net: Get mac address from driver as seed 2017-08-07 15:18:28 -05:00
nfs.c net: Consolidate the parsing of bootfile 2018-07-26 14:08:20 -05:00
nfs.h net: Correct size of NFS buffers 2018-07-26 14:08:19 -05:00
ping.c net: Don't overwrite waiting packets with asynchronous replies 2018-10-10 12:29:01 -05:00
ping.h SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
rarp.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
rarp.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sntp.c dm: net: rtc: Support using driver model for rtc in sntp 2015-05-05 20:58:40 -06:00
sntp.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
tftp.c net: Consolidate the parsing of bootfile 2018-07-26 14:08:20 -05:00
wol.c net: Add new wol command - Wake on LAN 2018-07-02 14:14:20 -05:00
wol.h net: Add new wol command - Wake on LAN 2018-07-02 14:14:20 -05:00