]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/bpf: test_xsk: Release resources when swap fails
authorBastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com>
Fri, 31 Oct 2025 08:04:43 +0000 (09:04 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 31 Oct 2025 16:24:38 +0000 (09:24 -0700)
testapp_validate_traffic() doesn't release the sockets and the umem
created by the threads if the test isn't currently in its last step.
Thus, if the swap_xsk_resources() fails before the last step, the
created resources aren't cleaned up.

Clean the sockets and the umem in case of swap_xsk_resources() failure.

Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Bastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com>
Link: https://lore.kernel.org/r/20251031-xsk-v7-7-39fe486593a3@bootlin.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/test_xsk.c

index 84b724731e26d0c7e67131ec1bd562e223d3d09d..8fe75845d7a6aa5342229fa419fcbaa411ae9e70 100644 (file)
@@ -1866,8 +1866,13 @@ int testapp_xdp_prog_cleanup(struct test_spec *test)
        if (testapp_validate_traffic(test))
                return TEST_FAILURE;
 
-       if (swap_xsk_resources(test))
+       if (swap_xsk_resources(test)) {
+               clean_sockets(test, test->ifobj_rx);
+               clean_sockets(test, test->ifobj_tx);
+               clean_umem(test, test->ifobj_rx, test->ifobj_tx);
                return TEST_FAILURE;
+       }
+
        return testapp_validate_traffic(test);
 }