On Sat, Aug 1, 2026 at 6:12 AM Mina Almasry <[email protected]> wrote: > Hi
> 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. With EADDRNOTAVAIL? Maybe loop only for that errno? > Retry bind() multiple times before fully failing the test > to improve robustness. > > Signed-off-by: Mina Almasry <[email protected]> > --- > 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 >

