1 // SPDX-License-Identifier: GPL-2.0 2 #include <linux/bpf.h> 3 #include <bpf/bpf_helpers.h> 4 #include <bpf/bpf_tracing.h> 5 #include <stdbool.h> 6 7 #ifdef ENABLE_ATOMICS_TESTS 8 bool skip_tests __attribute((__section__(".data"))) = false; 9 #else 10 bool skip_tests = true; 11 #endif 12 13 SEC("fentry/bpf_fentry_test1") 14 int BPF_PROG(sub, int x) 15 { 16 #ifdef ENABLE_ATOMICS_TESTS 17 int a = 0; 18 int b = __sync_fetch_and_add(&a, 1); 19 /* b is certainly 0 here. Can the verifier tell? */ 20 while (b) 21 continue; 22 #endif 23 return 0; 24 } 25