There are a number of places in test_progs that use minus-1 as the argument to exit(). This improper use as a process exit status is masked to be a number between 0 and 255 as defined in man exit(3). This patch use two different positive exit codes instead, to allow a shell script to tell the two error cases apart. Fixes: fd27b1835e70 ("selftests/bpf: Reset process and thread affinity after each test/sub-test") Fixes: 811d7e375d08 ("bpf: selftests: Restore netns after each test") Signed-off-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx> --- tools/testing/selftests/bpf/test_progs.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selftests/bpf/test_progs.c index e8f7cd5dbae4..50803b080593 100644 --- a/tools/testing/selftests/bpf/test_progs.c +++ b/tools/testing/selftests/bpf/test_progs.c @@ -12,7 +12,9 @@ #include <string.h> #include <execinfo.h> /* backtrace */ -#define EXIT_NO_TEST 2 +#define EXIT_NO_TEST 2 +#define EXIT_ERR_NETNS 3 +#define EXIT_ERR_RESET_AFFINITY 4 /* defined in test_progs.h */ struct test_env env = {}; @@ -113,13 +115,13 @@ static void reset_affinity() { if (err < 0) { stdio_restore(); fprintf(stderr, "Failed to reset process affinity: %d!\n", err); - exit(-1); + exit(EXIT_ERR_RESET_AFFINITY); } err = pthread_setaffinity_np(pthread_self(), sizeof(cpuset), &cpuset); if (err < 0) { stdio_restore(); fprintf(stderr, "Failed to reset thread affinity: %d!\n", err); - exit(-1); + exit(EXIT_ERR_RESET_AFFINITY); } } @@ -128,7 +130,7 @@ static void save_netns(void) env.saved_netns_fd = open("/proc/self/ns/net", O_RDONLY); if (env.saved_netns_fd == -1) { perror("open(/proc/self/ns/net)"); - exit(-1); + exit(EXIT_ERR_NETNS); } } @@ -137,7 +139,7 @@ static void restore_netns(void) if (setns(env.saved_netns_fd, CLONE_NEWNET) == -1) { stdio_restore(); perror("setns(CLONE_NEWNS)"); - exit(-1); + exit(EXIT_ERR_NETNS); } }