xref: /linux/tools/testing/selftests/bpf/progs/verifier_default_trusted_ptr.c (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1*dd341eacSMatt Bobrowski // SPDX-License-Identifier: GPL-2.0
2*dd341eacSMatt Bobrowski /*
3*dd341eacSMatt Bobrowski  * Copyright 2026 Google LLC.
4*dd341eacSMatt Bobrowski  */
5*dd341eacSMatt Bobrowski 
6*dd341eacSMatt Bobrowski #include <vmlinux.h>
7*dd341eacSMatt Bobrowski #include <bpf/bpf_helpers.h>
8*dd341eacSMatt Bobrowski #include <bpf/bpf_tracing.h>
9*dd341eacSMatt Bobrowski 
10*dd341eacSMatt Bobrowski #include "bpf_misc.h"
11*dd341eacSMatt Bobrowski #include "../test_kmods/bpf_testmod_kfunc.h"
12*dd341eacSMatt Bobrowski 
13*dd341eacSMatt Bobrowski SEC("syscall")
14*dd341eacSMatt Bobrowski __success __retval(0)
15*dd341eacSMatt Bobrowski int test_default_trusted_ptr(void *ctx)
16*dd341eacSMatt Bobrowski {
17*dd341eacSMatt Bobrowski 	struct prog_test_member *trusted_ptr;
18*dd341eacSMatt Bobrowski 
19*dd341eacSMatt Bobrowski 	trusted_ptr = bpf_kfunc_get_default_trusted_ptr_test();
20*dd341eacSMatt Bobrowski 	/*
21*dd341eacSMatt Bobrowski 	 * Test BPF kfunc bpf_get_default_trusted_ptr_test() returns a
22*dd341eacSMatt Bobrowski 	 * PTR_TO_BTF_ID | PTR_TRUSTED, therefore it should be accepted when
23*dd341eacSMatt Bobrowski 	 * passed to a BPF kfunc only accepting KF_TRUSTED_ARGS.
24*dd341eacSMatt Bobrowski 	 */
25*dd341eacSMatt Bobrowski 	bpf_kfunc_put_default_trusted_ptr_test(trusted_ptr);
26*dd341eacSMatt Bobrowski 	return 0;
27*dd341eacSMatt Bobrowski }
28*dd341eacSMatt Bobrowski 
29*dd341eacSMatt Bobrowski char _license[] SEC("license") = "GPL";
30