mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 00:34:52 +00:00
![]() This patch adds special BPF_RB_{ROOT,NODE} btf_field_types similar to BPF_LIST_{HEAD,NODE}, adds the necessary plumbing to detect the new types, and adds bpf_rb_root_free function for freeing bpf_rb_root in map_values. structs bpf_rb_root and bpf_rb_node are opaque types meant to obscure structs rb_root_cached rb_node, respectively. btf_struct_access will prevent BPF programs from touching these special fields automatically now that they're recognized. btf_check_and_fixup_fields now groups list_head and rb_root together as "graph root" fields and {list,rb}_node as "graph node", and does same ownership cycle checking as before. Note that this function does _not_ prevent ownership type mixups (e.g. rb_root owning list_node) - that's handled by btf_parse_graph_root. After this patch, a bpf program can have a struct bpf_rb_root in a map_value, but not add anything to nor do anything useful with it. Signed-off-by: Dave Marchevsky <davemarchevsky@fb.com> Link: https://lore.kernel.org/r/20230214004017.2534011-2-davemarchevsky@fb.com Signed-off-by: Alexei Starovoitov <ast@kernel.org> |
||
---|---|---|
.. | ||
alsa | ||
amd-pstate | ||
arm64 | ||
bpf | ||
breakpoints | ||
capabilities | ||
cgroup | ||
clone3 | ||
core | ||
cpu-hotplug | ||
cpufreq | ||
damon | ||
dma | ||
dmabuf-heaps | ||
drivers | ||
efivarfs | ||
exec | ||
filesystems | ||
firmware | ||
fpu | ||
ftrace | ||
futex | ||
gpio | ||
ia64 | ||
intel_pstate | ||
iommu | ||
ipc | ||
ir | ||
kcmp | ||
kexec | ||
kmod | ||
kselftest | ||
kvm | ||
landlock | ||
lib | ||
livepatch | ||
lkdtm | ||
locking | ||
media_tests | ||
membarrier | ||
memfd | ||
memory-hotplug | ||
mincore | ||
mount | ||
mount_setattr | ||
move_mount_set_group | ||
mqueue | ||
nci | ||
net | ||
netfilter | ||
nolibc | ||
nsfs | ||
ntb | ||
openat2 | ||
perf_events | ||
pid_namespace | ||
pidfd | ||
powerpc | ||
prctl | ||
proc | ||
pstore | ||
ptp | ||
ptrace | ||
rcutorture | ||
resctrl | ||
rlimits | ||
rseq | ||
rtc | ||
safesetid | ||
sched | ||
seccomp | ||
sgx | ||
sigaltstack | ||
size | ||
sparc64 | ||
splice | ||
static_keys | ||
sync | ||
syscall_user_dispatch | ||
sysctl | ||
tc-testing | ||
tdx | ||
timens | ||
timers | ||
tmpfs | ||
tpm2 | ||
uevent | ||
user | ||
user_events | ||
vDSO | ||
vm | ||
watchdog | ||
wireguard | ||
x86 | ||
zram | ||
.gitignore | ||
gen_kselftest_tar.sh | ||
kselftest.h | ||
kselftest_deps.sh | ||
kselftest_harness.h | ||
kselftest_install.sh | ||
kselftest_module.h | ||
lib.mk | ||
Makefile | ||
run_kselftest.sh |