// SPDX-License-Identifier: GPL-2.0 | |
#include <linux/bpf.h> | |
#include <bpf/bpf_helpers.h> | |
#include <bpf/bpf_tracing.h> | |
#include <stdbool.h> | |
#ifdef ENABLE_ATOMICS_TESTS | |
bool skip_tests __attribute((__section__(".data"))) = false; | |
#else | |
bool skip_tests = true; | |
#endif | |
SEC("fentry/bpf_fentry_test1") | |
int BPF_PROG(sub, int x) | |
{ | |
#ifdef ENABLE_ATOMICS_TESTS | |
int a = 0; | |
int b = __sync_fetch_and_add(&a, 1); | |
/* b is certainly 0 here. Can the verifier tell? */ | |
while (b) | |
continue; | |
#endif | |
return 0; | |
} |