Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
Original file line number Diff line number Diff line change
Expand Up @@ -450,8 +450,8 @@ static void pe_subtest(struct test_bpf_cookie *skel)
attr.size = sizeof(attr);
attr.type = PERF_TYPE_SOFTWARE;
attr.config = PERF_COUNT_SW_CPU_CLOCK;
attr.freq = 1;
attr.sample_freq = 10000;
attr.sample_period = 100000;

pfd = syscall(__NR_perf_event_open, &attr, -1, 0, -1, PERF_FLAG_FD_CLOEXEC);
if (!ASSERT_GE(pfd, 0, "perf_fd"))
goto cleanup;
Expand Down
21 changes: 15 additions & 6 deletions tools/testing/selftests/bpf/prog_tests/test_task_work.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ static void task_work_run(const char *prog_name, const char *map_name)
struct task_work *skel;
struct bpf_program *prog;
struct bpf_map *map;
struct bpf_link *link;
int err, pe_fd = 0, pid, status, pipefd[2];
struct bpf_link *link = NULL;
int err, pe_fd = -1, pid, status, pipefd[2];
char user_string[] = "hello world";

if (!ASSERT_NEQ(pipe(pipefd), -1, "pipe"))
Expand All @@ -77,7 +77,11 @@ static void task_work_run(const char *prog_name, const char *map_name)
(void)num;
exit(0);
}
ASSERT_GT(pid, 0, "fork() failed");
if (!ASSERT_GT(pid, 0, "fork() failed")) {
close(pipefd[0]);
close(pipefd[1]);
return;
}

skel = task_work__open();
if (!ASSERT_OK_PTR(skel, "task_work__open"))
Expand Down Expand Up @@ -109,9 +113,12 @@ static void task_work_run(const char *prog_name, const char *map_name)
}

link = bpf_program__attach_perf_event(prog, pe_fd);
if (!ASSERT_OK_PTR(link, "attach_perf_event"))
if (!ASSERT_OK_PTR(link, "attach_perf_event")) {
link = NULL;
goto cleanup;

}
/* perf event fd ownership is passed to bpf_link */
pe_fd = -1;
close(pipefd[0]);
write(pipefd[1], user_string, 1);
close(pipefd[1]);
Expand All @@ -126,8 +133,10 @@ static void task_work_run(const char *prog_name, const char *map_name)
cleanup:
if (pe_fd >= 0)
close(pe_fd);
if (link)
bpf_link__destroy(link);
task_work__destroy(skel);
if (pid) {
if (pid > 0) {
close(pipefd[0]);
write(pipefd[1], user_string, 1);
close(pipefd[1]);
Expand Down
Loading