mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
selftests: iou-zcrx: defer listen() until after zcrx setup
The server binds the queues for zero-copy after listen(). If the client does a connect() during this time it can fail with EHOSTUNREACH on a cold system. This was encountered with the mlx5 driver where binding the .ndo_queue_start() is a slow operation during which no packets can be exchanged. This change moves listen() after queue binding, when the test server is fully operational. Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com> Reviewed-by: Cosmin Ratiu <cratiu@nvidia.com> Link: https://patch.msgid.link/20260611160341.3697227-2-dtatulea@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
315a0c3399
commit
ec782be97d
|
|
@ -351,9 +351,6 @@ static void run_server(void)
|
|||
if (ret < 0)
|
||||
error(1, 0, "bind()");
|
||||
|
||||
if (listen(fd, 1024) < 0)
|
||||
error(1, 0, "listen()");
|
||||
|
||||
flags |= IORING_SETUP_COOP_TASKRUN;
|
||||
flags |= IORING_SETUP_SINGLE_ISSUER;
|
||||
flags |= IORING_SETUP_DEFER_TASKRUN;
|
||||
|
|
@ -366,6 +363,9 @@ static void run_server(void)
|
|||
if (cfg_dry_run)
|
||||
return;
|
||||
|
||||
if (listen(fd, 1024) < 0)
|
||||
error(1, 0, "listen()");
|
||||
|
||||
add_accept(&ring, fd);
|
||||
|
||||
tstop = gettimeofday_ms() + 5000;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user