The large chunks test does a probe run of iou-zcrx before it runs the
actual test. After the probe run finishes, the context will still exist
until the deferred io_uring teardown. When running iou-zcrx the second
time, io_uring_register_ifq() can return -EEXIST due to the existence of
the old context.

The fix is simple: wait for the context teardown using the new
mp_clear_wait() utility before running the second instance of iou-zcrx.

Fixes: 27c4ab943882 ("selftests: drv-net: iou-zcrx: wait for memory provider 
cleanup")
Signed-off-by: Dragos Tatulea <[email protected]>
---
 tools/testing/selftests/drivers/net/hw/iou-zcrx.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/testing/selftests/drivers/net/hw/iou-zcrx.py 
b/tools/testing/selftests/drivers/net/hw/iou-zcrx.py
index 66dd496ec5cf..e81724cb5542 100755
--- a/tools/testing/selftests/drivers/net/hw/iou-zcrx.py
+++ b/tools/testing/selftests/drivers/net/hw/iou-zcrx.py
@@ -151,6 +151,7 @@ def test_zcrx_large_chunks(cfg) -> None:
     if probe.ret == SKIP_CODE:
         raise KsftSkipEx(probe.stdout.strip())
 
+    mp_clear_wait(cfg)
     with bkg(rx_cmd, exit_wait=True):
         wait_port_listen(cfg.port, proto="tcp")
         cmd(tx_cmd, host=cfg.remote)
-- 
2.52.0


Reply via email to