[PATCH net-next v1 2/2] selftests: drv-net: ncdevmem: gracefully retry bind()
From: Mina Almasry
Date: Sat Aug 01 2026 - 09:13:23 EST
In testing environments, binding to the port can transiently fail
following a driver reset caused by the preceding queue configuration.
The failing bind() is typically caused by DHCP/IPv6 DAD needing some
time to resolve and assign the IP address back to the interface after
the reset. Retry bind() multiple times before fully failing the test
to improve robustness.
Signed-off-by: Mina Almasry <almasrymina@xxxxxxxxxx>
---
tools/testing/selftests/drivers/net/hw/ncdevmem.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/drivers/net/hw/ncdevmem.c b/tools/testing/selftests/drivers/net/hw/ncdevmem.c
index ffe1d5c1fa4e1..6724f81e389fa 100644
--- a/tools/testing/selftests/drivers/net/hw/ncdevmem.c
+++ b/tools/testing/selftests/drivers/net/hw/ncdevmem.c
@@ -898,7 +898,12 @@ static int do_server(struct memory_buffer *mem)
fprintf(stderr, "binding to address %s:%d\n", server_ip,
ntohs(server_sin.sin6_port));
- ret = bind(socket_fd, &server_sin, sizeof(server_sin));
+ int retries = 10;
+ while (retries--) {
+ ret = bind(socket_fd, &server_sin, sizeof(server_sin));
+ if (!ret) break;
+ sleep(1);
+ }
if (ret) {
pr_err("Failed to bind");
goto err_close_socket;
--
2.55.0.571.g244d577d93-goog