Skip to content

Commit

Permalink
samples, bpf: Refactor pointer error check with libbpf
Browse files Browse the repository at this point in the history
Current method of checking pointer error is not user friendly.
Especially the __must_check define makes this less intuitive.

Since, libbpf has an API libbpf_get_error() which checks pointer error,
this commit refactors existing pointer error check logic with libbpf.

Signed-off-by: Daniel T. Lee <[email protected]>
Signed-off-by: Daniel Borkmann <[email protected]>
Acked-by: Yonghong Song <[email protected]>
Link: https://lore.kernel.org/bpf/[email protected]
  • Loading branch information
DanielTimLee authored and borkmann committed May 19, 2020
1 parent 96586dd commit 0efdcef
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 15 deletions.
7 changes: 2 additions & 5 deletions samples/bpf/sampleip_user.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@
#include "perf-sys.h"
#include "trace_helpers.h"

#define __must_check
#include <linux/err.h>

#define DEFAULT_FREQ 99
#define DEFAULT_SECS 5
#define MAX_IPS 8192
Expand Down Expand Up @@ -57,7 +54,7 @@ static int sampling_start(int freq, struct bpf_program *prog,
return 1;
}
links[i] = bpf_program__attach_perf_event(prog, pmu_fd);
if (IS_ERR(links[i])) {
if (libbpf_get_error(links[i])) {
fprintf(stderr, "ERROR: Attach perf event\n");
links[i] = NULL;
close(pmu_fd);
Expand Down Expand Up @@ -182,7 +179,7 @@ int main(int argc, char **argv)

snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]);
obj = bpf_object__open_file(filename, NULL);
if (IS_ERR(obj)) {
if (libbpf_get_error(obj)) {
fprintf(stderr, "ERROR: opening BPF object file failed\n");
obj = NULL;
goto cleanup;
Expand Down
9 changes: 3 additions & 6 deletions samples/bpf/trace_event_user.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@
#include "perf-sys.h"
#include "trace_helpers.h"

#define __must_check
#include <linux/err.h>

#define SAMPLE_FREQ 50

static int pid;
Expand Down Expand Up @@ -159,7 +156,7 @@ static void test_perf_event_all_cpu(struct perf_event_attr *attr)
goto all_cpu_err;
}
links[i] = bpf_program__attach_perf_event(prog, pmu_fd);
if (IS_ERR(links[i])) {
if (libbpf_get_error(links[i])) {
printf("bpf_program__attach_perf_event failed\n");
links[i] = NULL;
close(pmu_fd);
Expand Down Expand Up @@ -198,7 +195,7 @@ static void test_perf_event_task(struct perf_event_attr *attr)
goto err;
}
link = bpf_program__attach_perf_event(prog, pmu_fd);
if (IS_ERR(link)) {
if (libbpf_get_error(link)) {
printf("bpf_program__attach_perf_event failed\n");
link = NULL;
close(pmu_fd);
Expand Down Expand Up @@ -314,7 +311,7 @@ int main(int argc, char **argv)
}

obj = bpf_object__open_file(filename, NULL);
if (IS_ERR(obj)) {
if (libbpf_get_error(obj)) {
printf("opening BPF object file failed\n");
obj = NULL;
goto cleanup;
Expand Down
5 changes: 1 addition & 4 deletions samples/bpf/xdp_redirect_cpu_user.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,6 @@ static const char *__doc__ =
#include <time.h>
#include <linux/limits.h>

#define __must_check
#include <linux/err.h>

#include <arpa/inet.h>
#include <linux/if_link.h>

Expand Down Expand Up @@ -622,7 +619,7 @@ static struct bpf_link * attach_tp(struct bpf_object *obj,
}

link = bpf_program__attach_tracepoint(prog, tp_category, tp_name);
if (IS_ERR(link))
if (libbpf_get_error(link))
exit(EXIT_FAIL_BPF);

return link;
Expand Down

0 comments on commit 0efdcef

Please sign in to comment.