]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
selftests/xsk: Ensure traffic validation proceeds after ring size adjustment in xskxc...
authorTushar Vyavahare <tushar.vyavahare@intel.com>
Tue, 2 Jul 2024 05:59:15 +0000 (05:59 +0000)
committerDaniel Borkmann <daniel@iogearbox.net>
Tue, 2 Jul 2024 13:12:30 +0000 (15:12 +0200)
Previously, HW_SW_MIN_RING_SIZE and HW_SW_MAX_RING_SIZE test cases were
not validating Tx/Rx traffic at all due to early return after changing HW
ring size in testapp_validate_traffic().

Fix the flow by checking return value of set_ring_size() and act upon it
rather than terminating the test case there.

Signed-off-by: Tushar Vyavahare <tushar.vyavahare@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Link: https://lore.kernel.org/bpf/20240702055916.48071-2-tushar.vyavahare@intel.com
tools/testing/selftests/bpf/xskxceiver.c

index 2eac0895b0a160bc1c659097ce0660f3aaab199f..088df53869e8ced57d02b074a4b6a202f3f9146c 100644 (file)
@@ -1899,11 +1899,15 @@ static int testapp_validate_traffic(struct test_spec *test)
        }
 
        if (test->set_ring) {
-               if (ifobj_tx->hw_ring_size_supp)
-                       return set_ring_size(ifobj_tx);
-
-       ksft_test_result_skip("Changing HW ring size not supported.\n");
-       return TEST_SKIP;
+               if (ifobj_tx->hw_ring_size_supp) {
+                       if (set_ring_size(ifobj_tx)) {
+                               ksft_test_result_skip("Failed to change HW ring size.\n");
+                               return TEST_FAILURE;
+                       }
+               } else {
+                       ksft_test_result_skip("Changing HW ring size not supported.\n");
+                       return TEST_SKIP;
+               }
        }
 
        xsk_attach_xdp_progs(test, ifobj_rx, ifobj_tx);