xref: /linux/tools/testing/selftests/bpf/progs/kprobe_multi_verifier.c (revision 25768de50b1f2dbb6ea44bd5148a87fe2c9c3688)
1*504d21d9SJiri Olsa // SPDX-License-Identifier: GPL-2.0
2*504d21d9SJiri Olsa #include "vmlinux.h"
3*504d21d9SJiri Olsa #include <bpf/bpf_helpers.h>
4*504d21d9SJiri Olsa #include <bpf/bpf_tracing.h>
5*504d21d9SJiri Olsa #include <bpf/usdt.bpf.h>
6*504d21d9SJiri Olsa #include "bpf_misc.h"
7*504d21d9SJiri Olsa 
8*504d21d9SJiri Olsa char _license[] SEC("license") = "GPL";
9*504d21d9SJiri Olsa 
10*504d21d9SJiri Olsa 
11*504d21d9SJiri Olsa SEC("kprobe.session")
12*504d21d9SJiri Olsa __success
13*504d21d9SJiri Olsa int kprobe_session_return_0(struct pt_regs *ctx)
14*504d21d9SJiri Olsa {
15*504d21d9SJiri Olsa 	return 0;
16*504d21d9SJiri Olsa }
17*504d21d9SJiri Olsa 
18*504d21d9SJiri Olsa SEC("kprobe.session")
19*504d21d9SJiri Olsa __success
20*504d21d9SJiri Olsa int kprobe_session_return_1(struct pt_regs *ctx)
21*504d21d9SJiri Olsa {
22*504d21d9SJiri Olsa 	return 1;
23*504d21d9SJiri Olsa }
24*504d21d9SJiri Olsa 
25*504d21d9SJiri Olsa SEC("kprobe.session")
26*504d21d9SJiri Olsa __failure
27*504d21d9SJiri Olsa __msg("At program exit the register R0 has smin=2 smax=2 should have been in [0, 1]")
28*504d21d9SJiri Olsa int kprobe_session_return_2(struct pt_regs *ctx)
29*504d21d9SJiri Olsa {
30*504d21d9SJiri Olsa 	return 2;
31*504d21d9SJiri Olsa }
32