Skip to content
Navigation Menu
Toggle navigation
Sign in
In this repository
All GitHub Enterprise
↵
Jump to
↵
No suggested jump to results
In this repository
All GitHub Enterprise
↵
Jump to
↵
In this organization
All GitHub Enterprise
↵
Jump to
↵
In this repository
All GitHub Enterprise
↵
Jump to
↵
Sign in
Reseting focus
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
mariux64
/
linux
Public
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Issues
2
Pull requests
0
Actions
Projects
0
Wiki
Security
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security
Insights
Files
03b77e1
Documentation
LICENSES
arch
block
certs
crypto
drivers
fs
include
init
io_uring
ipc
kernel
lib
mm
net
rust
samples
scripts
security
sound
tools
accounting
arch
bootconfig
bpf
build
certs
cgroup
counter
debugging
edid
firewire
firmware
gpio
hv
iio
include
io_uring
kvm/kvm_stat
laptop
leds
lib
memory-model
net/ynl
objtool
pci
pcmcia
perf
power
rcu
scripts
spi
testing
crypto/chacha20-s390
cxl
fault-injection
ktest
kunit
memblock
nvdimm
radix-tree
scatterlist
selftests
alsa
amd-pstate
arm64
bpf
benchs
bpf_testmod
gnu
map_tests
prog_tests
progs
atomic_bounds.c
atomics.c
bind4_prog.c
bind6_prog.c
bind_perm.c
bloom_filter_bench.c
bloom_filter_map.c
bpf_cubic.c
bpf_dctcp.c
bpf_dctcp_release.c
bpf_flow.c
bpf_hashmap_full_update_bench.c
bpf_hashmap_lookup.c
bpf_iter.h
bpf_iter_bpf_array_map.c
bpf_iter_bpf_hash_map.c
bpf_iter_bpf_link.c
bpf_iter_bpf_map.c
bpf_iter_bpf_percpu_array_map.c
bpf_iter_bpf_percpu_hash_map.c
bpf_iter_bpf_sk_storage_helpers.c
bpf_iter_bpf_sk_storage_map.c
bpf_iter_ipv6_route.c
bpf_iter_ksym.c
bpf_iter_netlink.c
bpf_iter_setsockopt.c
bpf_iter_setsockopt_unix.c
bpf_iter_sockmap.c
bpf_iter_task.c
bpf_iter_task_btf.c
bpf_iter_task_file.c
bpf_iter_task_stack.c
bpf_iter_task_vma.c
bpf_iter_tcp4.c
bpf_iter_tcp6.c
bpf_iter_test_kern1.c
bpf_iter_test_kern2.c
bpf_iter_test_kern3.c
bpf_iter_test_kern4.c
bpf_iter_test_kern5.c
bpf_iter_test_kern6.c
bpf_iter_test_kern_common.h
bpf_iter_udp4.c
bpf_iter_udp6.c
bpf_iter_unix.c
bpf_iter_vma_offset.c
bpf_loop.c
bpf_loop_bench.c
bpf_misc.h
bpf_mod_race.c
bpf_syscall_macro.c
bpf_tcp_nogpl.c
bpf_tracing_net.h
bprm_opts.c
btf__core_reloc_arrays.c
btf__core_reloc_arrays___diff_arr_dim.c
btf__core_reloc_arrays___diff_arr_val_sz.c
btf__core_reloc_arrays___equiv_zero_sz_arr.c
btf__core_reloc_arrays___err_bad_zero_sz_arr.c
btf__core_reloc_arrays___err_non_array.c
btf__core_reloc_arrays___err_too_shallow.c
btf__core_reloc_arrays___err_too_small.c
btf__core_reloc_arrays___err_wrong_val_type.c
btf__core_reloc_arrays___fixed_arr.c
btf__core_reloc_bitfields.c
btf__core_reloc_bitfields___bit_sz_change.c
btf__core_reloc_bitfields___bitfield_vs_int.c
btf__core_reloc_bitfields___err_too_big_bitfield.c
btf__core_reloc_bitfields___just_big_enough.c
btf__core_reloc_enum64val.c
btf__core_reloc_enum64val___diff.c
btf__core_reloc_enum64val___err_missing.c
btf__core_reloc_enum64val___val3_missing.c
btf__core_reloc_enumval.c
btf__core_reloc_enumval___diff.c
btf__core_reloc_enumval___err_missing.c
btf__core_reloc_enumval___val3_missing.c
btf__core_reloc_existence.c
btf__core_reloc_existence___minimal.c
btf__core_reloc_existence___wrong_field_defs.c
btf__core_reloc_flavors.c
btf__core_reloc_flavors__err_wrong_name.c
btf__core_reloc_ints.c
btf__core_reloc_ints___bool.c
btf__core_reloc_ints___reverse_sign.c
btf__core_reloc_misc.c
btf__core_reloc_mods.c
btf__core_reloc_mods___mod_swap.c
btf__core_reloc_mods___typedefs.c
btf__core_reloc_nesting.c
btf__core_reloc_nesting___anon_embed.c
btf__core_reloc_nesting___dup_compat_types.c
btf__core_reloc_nesting___err_array_container.c
btf__core_reloc_nesting___err_array_field.c
btf__core_reloc_nesting___err_dup_incompat_types.c
btf__core_reloc_nesting___err_missing_container.c
btf__core_reloc_nesting___err_missing_field.c
btf__core_reloc_nesting___err_nonstruct_container.c
btf__core_reloc_nesting___err_partial_match_dups.c
btf__core_reloc_nesting___err_too_deep.c
btf__core_reloc_nesting___extra_nesting.c
btf__core_reloc_nesting___struct_union_mixup.c
btf__core_reloc_primitives.c
btf__core_reloc_primitives___diff_enum_def.c
btf__core_reloc_primitives___diff_func_proto.c
btf__core_reloc_primitives___diff_ptr_type.c
btf__core_reloc_primitives___err_non_enum.c
btf__core_reloc_primitives___err_non_int.c
btf__core_reloc_primitives___err_non_ptr.c
btf__core_reloc_ptr_as_arr.c
btf__core_reloc_ptr_as_arr___diff_sz.c
btf__core_reloc_size.c
btf__core_reloc_size___diff_offs.c
btf__core_reloc_size___diff_sz.c
btf__core_reloc_size___err_ambiguous.c
btf__core_reloc_type_based.c
btf__core_reloc_type_based___all_missing.c
btf__core_reloc_type_based___diff.c
btf__core_reloc_type_based___diff_sz.c
btf__core_reloc_type_based___fn_wrong_args.c
btf__core_reloc_type_based___incompat.c
btf__core_reloc_type_id.c
btf__core_reloc_type_id___missing_targets.c
btf_data.c
btf_dump_test_case_bitfields.c
btf_dump_test_case_multidim.c
btf_dump_test_case_namespacing.c
btf_dump_test_case_ordering.c
btf_dump_test_case_packing.c
btf_dump_test_case_padding.c
btf_dump_test_case_syntax.c
btf_ptr.h
btf_type_tag.c
btf_type_tag_percpu.c
btf_type_tag_user.c
cb_refs.c
cg_storage_multi.h
cg_storage_multi_egress_only.c
cg_storage_multi_isolated.c
cg_storage_multi_shared.c
cgroup_getset_retval_getsockopt.c
cgroup_getset_retval_hooks.c
cgroup_getset_retval_setsockopt.c
cgroup_hierarchical_stats.c
cgroup_iter.c
cgroup_skb_sk_lookup_kern.c
cgrp_kfunc_common.h
cgrp_kfunc_failure.c
cgrp_kfunc_success.c
cgrp_ls_attach_cgroup.c
cgrp_ls_negative.c
cgrp_ls_recursion.c
cgrp_ls_sleepable.c
cgrp_ls_tp_btf.c
connect4_dropper.c
connect4_prog.c
connect6_prog.c
connect_force_port4.c
connect_force_port6.c
connect_ping.c
core_kern.c
core_kern_overflow.c
core_reloc_types.h
cpumask_common.h
cpumask_failure.c
cpumask_success.c
decap_sanity.c
dev_cgroup.c
dummy_st_ops_fail.c
dummy_st_ops_success.c
dynptr_fail.c
dynptr_success.c
empty_skb.c
exhandler_kern.c
fentry_test.c
fexit_bpf2bpf.c
fexit_bpf2bpf_simple.c
fexit_sleep.c
fexit_test.c
fib_lookup.c
find_vma.c
find_vma_fail1.c
find_vma_fail2.c
fmod_ret_freplace.c
for_each_array_map_elem.c
for_each_hash_map_elem.c
for_each_map_elem_write_key.c
freplace_attach_probe.c
freplace_cls_redirect.c
freplace_connect4.c
freplace_connect_v4_prog.c
freplace_get_constant.c
freplace_global_func.c
freplace_progmap.c
get_branch_snapshot.c
get_cgroup_id_kern.c
get_func_args_test.c
get_func_ip_test.c
htab_reuse.c
htab_update.c
ima.c
jeq_infer_not_null_fail.c
jit_probe_mem.c
kfree_skb.c
kfunc_call_destructive.c
kfunc_call_fail.c
kfunc_call_race.c
kfunc_call_test.c
kfunc_call_test_subprog.c
kprobe_multi.c
kprobe_multi_empty.c
ksym_race.c
linked_funcs1.c
linked_funcs2.c
linked_list.c
linked_list.h
linked_list_fail.c
linked_maps1.c
linked_maps2.c
linked_vars1.c
linked_vars2.c
load_bytes_relative.c
local_storage.c
local_storage_bench.c
local_storage_rcu_tasks_trace_bench.c
loop1.c
loop2.c
loop3.c
loop4.c
loop5.c
loop6.c
lru_bug.c
lsm.c
lsm_cgroup.c
lsm_cgroup_nonvoid.c
map_kptr.c
map_kptr_fail.c
map_ptr_kern.c
metadata_unused.c
metadata_used.c
modify_return.c
mptcp_sock.c
nested_trust_common.h
nested_trust_failure.c
nested_trust_success.c
netcnt_prog.c
netif_receive_skb.c
netns_cookie_prog.c
perf_event_stackmap.c
perfbuf_bench.c
profiler.h
profiler.inc.h
profiler1.c
profiler2.c
profiler3.c
pyperf.h
pyperf100.c
pyperf180.c
pyperf50.c
pyperf600.c
pyperf600_bpf_loop.c
pyperf600_nounroll.c
pyperf_global.c
pyperf_subprogs.c
rbtree.c
rbtree_btf_fail__add_wrong_type.c
rbtree_btf_fail__wrong_node_type.c
rbtree_fail.c
rcu_read_lock.c
rcu_tasks_trace_gp.c
read_bpf_task_storage_busy.c
recursion.c
recvmsg4_prog.c
recvmsg6_prog.c
ringbuf_bench.c
sample_map_ret0.c
sample_ret0.c
sendmsg4_prog.c
sendmsg6_prog.c
setget_sockopt.c
skb_load_bytes.c
skb_pkt_end.c
socket_cookie_prog.c
sockmap_parse_prog.c
sockmap_tcp_msg_prog.c
sockmap_verdict_prog.c
sockopt_inherit.c
sockopt_multi.c
sockopt_qos_to_cc.c
sockopt_sk.c
stacktrace_map_skip.c
strncmp_bench.c
strncmp_test.c
strobemeta.c
strobemeta.h
strobemeta_bpf_loop.c
strobemeta_nounroll1.c
strobemeta_nounroll2.c
strobemeta_subprogs.c
syscall.c
tailcall1.c
tailcall2.c
tailcall3.c
tailcall4.c
tailcall5.c
tailcall6.c
tailcall_bpf2bpf1.c
tailcall_bpf2bpf2.c
tailcall_bpf2bpf3.c
tailcall_bpf2bpf4.c
tailcall_bpf2bpf6.c
task_kfunc_common.h
task_kfunc_failure.c
task_kfunc_success.c
task_local_storage.c
task_local_storage_exit_creds.c
task_ls_recursion.c
task_storage_nodeadlock.c
tcp_ca_incompl_cong_ops.c
tcp_ca_unsupp_cong_op.c
tcp_ca_write_sk_pacing.c
tcp_rtt.c
test_attach_probe.c
test_autoattach.c
test_autoload.c
test_bpf_cookie.c
test_bpf_nf.c
test_bpf_nf_fail.c
test_btf_decl_tag.c
test_btf_map_in_map.c
test_btf_newkv.c
test_btf_nokv.c
test_btf_skc_cls_ingress.c
test_cgroup_link.c
test_check_mtu.c
test_cls_redirect.c
test_cls_redirect.h
test_cls_redirect_dynptr.c
test_cls_redirect_subprogs.c
test_core_autosize.c
test_core_extern.c
test_core_read_macros.c
test_core_reloc_arrays.c
test_core_reloc_bitfields_direct.c
test_core_reloc_bitfields_probed.c
test_core_reloc_enum64val.c
test_core_reloc_enumval.c
test_core_reloc_existence.c
test_core_reloc_flavors.c
test_core_reloc_ints.c
test_core_reloc_kernel.c
test_core_reloc_misc.c
test_core_reloc_mods.c
test_core_reloc_module.c
test_core_reloc_nesting.c
test_core_reloc_primitives.c
test_core_reloc_ptr_as_arr.c
test_core_reloc_size.c
test_core_reloc_type_based.c
test_core_reloc_type_id.c
test_core_retro.c
test_custom_sec_handlers.c
test_d_path.c
test_d_path_check_rdonly_mem.c
test_d_path_check_types.c
test_deny_namespace.c
test_enable_stats.c
test_endian.c
test_get_stack_rawtp.c
test_get_stack_rawtp_err.c
test_global_data.c
test_global_func1.c
test_global_func10.c
test_global_func11.c
test_global_func12.c
test_global_func13.c
test_global_func14.c
test_global_func15.c
test_global_func16.c
test_global_func17.c
test_global_func2.c
test_global_func3.c
test_global_func4.c
test_global_func5.c
test_global_func6.c
test_global_func7.c
test_global_func8.c
test_global_func9.c
test_global_func_args.c
test_global_func_ctx_args.c
test_hash_large_key.c
test_helper_restricted.c
test_jhash.h
test_kfunc_dynptr_param.c
test_ksyms.c
test_ksyms_btf.c
test_ksyms_btf_null_check.c
test_ksyms_btf_write_check.c
test_ksyms_module.c
test_ksyms_weak.c
test_l4lb.c
test_l4lb_noinline.c
test_l4lb_noinline_dynptr.c
test_legacy_printk.c
test_libbpf_get_fd_by_id_opts.c
test_link_pinning.c
test_lirc_mode2_kern.c
test_log_buf.c
test_log_fixup.c
test_lookup_and_delete.c
test_lookup_key.c
test_lwt_ip_encap.c
test_lwt_seg6local.c
test_map_in_map.c
test_map_in_map_invalid.c
test_map_init.c
test_map_lock.c
test_map_lookup_percpu_elem.c
test_migrate_reuseport.c
test_misc_tcp_hdr_options.c
test_mmap.c
test_module_attach.c
test_ns_current_pid_tgid.c
test_obj_id.c
test_overhead.c
test_parse_tcp_hdr_opt.c
test_parse_tcp_hdr_opt_dynptr.c
test_pe_preserve_elems.c
test_perf_branches.c
test_perf_buffer.c
test_perf_link.c
test_pinning.c
test_pinning_invalid.c
test_pkt_access.c
test_pkt_md_access.c
test_probe_read_user_str.c
test_probe_user.c
test_prog_array_init.c
test_queue_map.c
test_queue_stack_map.h
test_raw_tp_test_run.c
test_rdonly_maps.c
test_ringbuf.c
test_ringbuf_map_key.c
test_ringbuf_multi.c
test_seg6_loop.c
test_select_reuseport_kern.c
test_send_signal_kern.c
test_sk_assign.c
test_sk_assign_libbpf.c
test_sk_lookup.c
test_sk_lookup_kern.c
test_sk_storage_trace_itself.c
test_sk_storage_tracing.c
test_skb_cgroup_id_kern.c
test_skb_ctx.c
test_skb_helpers.c
test_skc_to_unix_sock.c
test_skeleton.c
test_skmsg_load_helpers.c
test_snprintf.c
test_snprintf_single.c
test_sock_fields.c
test_sockhash_kern.c
test_sockmap_invalid_update.c
test_sockmap_kern.c
test_sockmap_kern.h
test_sockmap_listen.c
test_sockmap_progs_query.c
test_sockmap_skb_verdict_attach.c
test_sockmap_update.c
test_spin_lock.c
test_spin_lock_fail.c
test_stack_map.c
test_stack_var_off.c
test_stacktrace_build_id.c
test_stacktrace_map.c
test_static_linked1.c
test_static_linked2.c
test_subprogs.c
test_subprogs_unused.c
test_subskeleton.c
test_subskeleton_lib.c
test_subskeleton_lib2.c
test_sysctl_loop1.c
test_sysctl_loop2.c
test_sysctl_prog.c
test_task_pt_regs.c
test_tc_bpf.c
test_tc_dtime.c
test_tc_edt.c
test_tc_neigh.c
test_tc_neigh_fib.c
test_tc_peer.c
test_tc_tunnel.c
test_tcp_check_syncookie_kern.c
test_tcp_estats.c
test_tcp_hdr_options.c
test_tcpbpf_kern.c
test_tcpnotify_kern.c
test_time_tai.c
test_trace_ext.c
test_trace_ext_tracing.c
test_tracepoint.c
test_trampoline_count.c
test_tunnel_kern.c
test_unpriv_bpf_disabled.c
test_uprobe_autoattach.c
test_urandom_usdt.c
test_usdt.c
test_usdt_multispec.c
test_user_ringbuf.h
test_varlen.c
test_verif_scale1.c
test_verif_scale2.c
test_verif_scale3.c
test_verify_pkcs7_sig.c
test_vmlinux.c
test_xdp.c
test_xdp_adjust_tail_grow.c
test_xdp_adjust_tail_shrink.c
test_xdp_bpf2bpf.c
test_xdp_context_test_run.c
test_xdp_devmap_helpers.c
test_xdp_do_redirect.c
test_xdp_dynptr.c
test_xdp_link.c
test_xdp_loop.c
test_xdp_meta.c
test_xdp_noinline.c
test_xdp_redirect.c
test_xdp_update_frags.c
test_xdp_vlan.c
test_xdp_with_cpumap_frags_helpers.c
test_xdp_with_cpumap_helpers.c
test_xdp_with_devmap_frags_helpers.c
test_xdp_with_devmap_helpers.c
timer.c
timer_crash.c
timer_mim.c
timer_mim_reject.c
trace_dummy_st_ops.c
trace_printk.c
trace_vprintk.c
tracing_struct.c
trigger_bench.c
twfw.c
type_cast.c
udp_limit.c
uninit_stack.c
user_ringbuf_fail.c
user_ringbuf_success.c
xdp_dummy.c
xdp_features.c
xdp_hw_metadata.c
xdp_metadata.c
xdp_metadata2.c
xdp_redirect_map.c
xdp_redirect_multi_kern.c
xdp_synproxy_kern.c
xdp_tx.c
xdping_kern.c
xdpwall.c
xfrm_info.c
xsk_xdp_progs.c
verifier
.gitignore
DENYLIST
DENYLIST.aarch64
DENYLIST.s390x
Makefile
Makefile.docs
README.rst
bench.c
bench.h
bpf_experimental.h
bpf_kfuncs.h
bpf_legacy.h
bpf_rand.h
bpf_sockopt_helpers.h
bpf_tcp_helpers.h
bpf_util.h
btf_helpers.c
btf_helpers.h
cap_helpers.c
cap_helpers.h
cgroup_getset_retval_hooks.h
cgroup_helpers.c
cgroup_helpers.h
config
config.aarch64
config.s390x
config.x86_64
flow_dissector_load.c
flow_dissector_load.h
get_cgroup_id_user.c
ima_setup.sh
netcnt_common.h
network_helpers.c
network_helpers.h
sdt-config.h
sdt.h
settings
task_local_storage_helpers.h
test_bpftool.py
test_bpftool.sh
test_bpftool_build.sh
test_bpftool_metadata.sh
test_bpftool_synctypes.py
test_btf.h
test_cgroup_storage.c
test_cpp.cpp
test_dev_cgroup.c
test_doc_build.sh
test_flow_dissector.c
test_flow_dissector.sh
test_ftrace.sh
test_iptunnel_common.h
test_kmod.sh
test_lirc_mode2.sh
test_lirc_mode2_user.c
test_loader.c
test_lpm_map.c
test_lru_map.c
test_lwt_ip_encap.sh
test_lwt_seg6local.sh
test_maps.c
test_maps.h
test_offload.py
test_progs.c
test_progs.h
test_select_reuseport_common.h
test_skb_cgroup_id.sh
test_skb_cgroup_id_user.c
test_sock.c
test_sock_addr.c
test_sock_addr.sh
test_sockmap.c
test_sysctl.c
test_tag.c
test_tc_edt.sh
test_tc_tunnel.sh
test_tcp_check_syncookie.sh
test_tcp_check_syncookie_user.c
test_tcp_hdr_options.h
test_tcpbpf.h
test_tcpnotify.h
test_tcpnotify_user.c
test_tunnel.sh
test_verifier.c
test_verifier_log.c
test_xdp_features.sh
test_xdp_meta.sh
test_xdp_redirect.sh
test_xdp_redirect_multi.sh
test_xdp_veth.sh
test_xdp_vlan.sh
test_xdp_vlan_mode_generic.sh
test_xdp_vlan_mode_native.sh
test_xdping.sh
test_xsk.sh
testing_helpers.c
testing_helpers.h
trace_helpers.c
trace_helpers.h
urandom_read.c
urandom_read_aux.c
urandom_read_lib1.c
urandom_read_lib2.c
verify_sig_setup.sh
veristat.c
veristat.cfg
vmtest.sh
with_addr.sh
with_tunnels.sh
xdp_features.c
xdp_features.h
xdp_hw_metadata.c
xdp_metadata.h
xdp_redirect_multi.c
xdp_synproxy.c
xdping.c
xdping.h
xsk.c
xsk.h
xsk_prereqs.sh
xskxceiver.c
xskxceiver.h
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
Makefile
gen_kselftest_tar.sh
kselftest.h
kselftest_deps.sh
kselftest_harness.h
kselftest_install.sh
kselftest_module.h
lib.mk
run_kselftest.sh
vsock
thermal
time
tracing
usb
verification
virtio
vm
wmi
Makefile
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
.rustfmt.toml
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile
README
Breadcrumbs
linux
/
tools
/
testing
/
selftests
/
bpf
/
progs
/
jit_probe_mem.c
Copy path
Blame
Blame
Latest commit
History
History
61 lines (48 loc) · 1.16 KB
Breadcrumbs
linux
/
tools
/
testing
/
selftests
/
bpf
/
progs
/
jit_probe_mem.c
Top
File metadata and controls
Code
Blame
61 lines (48 loc) · 1.16 KB
Raw
// SPDX-License-Identifier: GPL-2.0 /* Copyright (c) 2022 Meta Platforms, Inc. and affiliates. */ #include <vmlinux.h> #include <bpf/bpf_tracing.h> #include <bpf/bpf_helpers.h> static struct prog_test_ref_kfunc __kptr *v; long total_sum = -1; extern struct prog_test_ref_kfunc *bpf_kfunc_call_test_acquire(unsigned long *sp) __ksym; extern void bpf_kfunc_call_test_release(struct prog_test_ref_kfunc *p) __ksym; SEC("tc") int test_jit_probe_mem(struct __sk_buff *ctx) { struct prog_test_ref_kfunc *p; unsigned long zero = 0, sum; p = bpf_kfunc_call_test_acquire(&zero); if (!p) return 1; p = bpf_kptr_xchg(&v, p); if (p) goto release_out; /* Direct map value access of kptr, should be PTR_UNTRUSTED */ p = v; if (!p) return 1; asm volatile ( "r9 = %[p];" "%[sum] = 0;" /* r8 = p->a */ "r8 = *(u32 *)(r9 + 0);" "%[sum] += r8;" /* r8 = p->b */ "r8 = *(u32 *)(r9 + 4);" "%[sum] += r8;" "r9 += 8;" /* r9 = p->a */ "r9 = *(u32 *)(r9 - 8);" "%[sum] += r9;" : [sum] "=r"(sum) : [p] "r"(p) : "r8", "r9" ); total_sum = sum; return 0; release_out: bpf_kfunc_call_test_release(p); return 1; } char _license[] SEC("license") = "GPL";
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
You can’t perform that action at this time.