@@ -1290,7 +1290,7 @@ static int receive_pkts(struct test_spec *test)
ret = gettimeofday(&tv_now, NULL);
if (ret)
- exit_with_error(errno);
+ return TEST_FAILURE;
timeradd(&tv_now, &tv_timeout, &tv_end);
@@ -1306,7 +1306,7 @@ static int receive_pkts(struct test_spec *test)
ret = gettimeofday(&tv_now, NULL);
if (ret)
- exit_with_error(errno);
+ return TEST_FAILURE;
if (timercmp(&tv_now, &tv_end, >)) {
print_msg("ERROR: [%s] Receive loop timed out\n", __func__);
@@ -1449,13 +1449,13 @@ static int wait_for_tx_completion(struct xsk_socket_info *xsk)
ret = gettimeofday(&tv_now, NULL);
if (ret)
- exit_with_error(errno);
+ return TEST_FAILURE;
timeradd(&tv_now, &tv_timeout, &tv_end);
while (xsk->outstanding_tx) {
ret = gettimeofday(&tv_now, NULL);
if (ret)
- exit_with_error(errno);
+ return TEST_FAILURE;
if (timercmp(&tv_now, &tv_end, >)) {
print_msg("ERROR: [%s] Transmission loop timed out\n", __func__);
return TEST_FAILURE;
exit_on_error() is called when gettimeofday() fails. This exits the program immediately and can lead to memory leaks. Return TEST_FAILURE instead of calling exit_on_error() Signed-off-by: Bastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com> --- tools/testing/selftests/bpf/xskxceiver.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)