summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorJerome Forissier <[email protected]>2025-08-04 14:51:01 +0200
committerJerome Forissier <[email protected]>2025-08-18 15:47:58 +0200
commit90c05f68fcab57d669233033d34e52b8d55d57dd (patch)
tree8b2646b13e02c95428d298bd614ef9e1a7fa47bf /cmd
parent2cb9fef65bbb7535c1e27cef3122bb0b43e38b68 (diff)
net: lwip: ping: set net_try_count to 1
The legacy network stack sets net_try_count to 1 at the beginning of the net_loop() function. This is required for net_start_again() to work properly. Therefore, set the variable accordingly in the do_ping() function when NET_LWIP=y. This fixes an issue where a ping to an unreachable destination would run twice on the same network device. For example with qemu_arm64_lwip_defconfig: => dhcp DHCP client bound to address 10.0.2.15 (3 ms) => ping 10.0.0.1 Using virtio-net#32 device ping failed; host 10.0.0.1 is not alive Using virtio-net#32 device ping failed; host 10.0.0.1 is not alive => QEMU: Terminated Signed-off-by: Jerome Forissier <[email protected]>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/lwip/ping.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/cmd/lwip/ping.c b/cmd/lwip/ping.c
index 87f8e958e48..6d090fc530d 100644
--- a/cmd/lwip/ping.c
+++ b/cmd/lwip/ping.c
@@ -170,6 +170,7 @@ int do_ping(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
if (net_lwip_dns_resolve(argv[1], &addr))
return CMD_RET_USAGE;
+ net_try_count = 1;
restart:
if (net_lwip_eth_start() < 0 || ping_loop(eth_get_dev(), &addr) < 0) {
if (net_start_again() == 0)