diff options
author | Wolfram Sang <w.sang@pengutronix.de> | 2012-04-04 18:04:42 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-04-05 08:56:03 +0200 |
commit | 56f6bfb820a61f9aef0964f609b22d0ad73d0bb3 (patch) | |
tree | 0c64b6fbae468b88cdcded46650ab0df645605ef /net/net.c | |
parent | f31693eb58089ae16ceb8b0eb34604d83669b360 (diff) | |
download | barebox-56f6bfb820a61f9aef0964f609b22d0ad73d0bb3.tar.gz barebox-56f6bfb820a61f9aef0964f609b22d0ad73d0bb3.tar.xz |
net: arp_request: do not retry endlessly
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'net/net.c')
-rw-r--r-- | net/net.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -223,6 +223,7 @@ static int arp_request(IPaddr_t dest, unsigned char *ether) uint64_t arp_start; static char *arp_packet; struct ethernet *et; + unsigned retries = 0; if (!arp_packet) { arp_packet = net_alloc_packet(); @@ -277,8 +278,12 @@ static int arp_request(IPaddr_t dest, unsigned char *ether) printf("T "); arp_start = get_time_ns(); eth_send(arp_packet, ETHER_HDR_SIZE + ARP_HDR_SIZE); + retries++; } + if (retries > PKT_NUM_RETRIES) + return -ETIMEDOUT; + net_poll(); } |