if (r > 0)
mask |= CGROUP_MASK_BPF_DEVICES;
- /* BPF pinned prog (always supported by cgroup v2) */
- mask |= CGROUP_MASK_BPF_FOREIGN;
+ /* BPF pinned prog */
+ if (bpf_program_supported() > 0)
+ mask |= CGROUP_MASK_BPF_FOREIGN;
/* BPF-based bind{4|6} hooks */
r = bpf_socket_bind_supported();
if (detect_container() > 0)
return log_tests_skipped("test-bpf fails inside LXC and Docker containers: https://github.com/systemd/systemd/issues/9666");
- if (getuid() != 0)
- return log_tests_skipped("not running as root");
+ r = bpf_program_supported();
+ if (r < 0)
+ return log_tests_skipped_errno(r, "not running as root");
ASSERT_OK(getrlimit(RLIMIT_MEMLOCK, &rl));
rl.rlim_cur = rl.rlim_max = MAX(rl.rlim_max, CAN_MEMLOCK_SIZE);