xref: /linux/tools/testing/selftests/bpf/progs/kprobe_multi_sleepable.c (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1*c7cab53fSVarun R Mallya // SPDX-License-Identifier: GPL-2.0
2*c7cab53fSVarun R Mallya 
3*c7cab53fSVarun R Mallya #include "vmlinux.h"
4*c7cab53fSVarun R Mallya #include <bpf/bpf_helpers.h>
5*c7cab53fSVarun R Mallya #include <bpf/bpf_tracing.h>
6*c7cab53fSVarun R Mallya 
7*c7cab53fSVarun R Mallya void *user_ptr = 0;
8*c7cab53fSVarun R Mallya 
9*c7cab53fSVarun R Mallya SEC("kprobe.multi")
10*c7cab53fSVarun R Mallya int handle_kprobe_multi_sleepable(struct pt_regs *ctx)
11*c7cab53fSVarun R Mallya {
12*c7cab53fSVarun R Mallya 	int a, err;
13*c7cab53fSVarun R Mallya 
14*c7cab53fSVarun R Mallya 	err = bpf_copy_from_user(&a, sizeof(a), user_ptr);
15*c7cab53fSVarun R Mallya 	barrier_var(a);
16*c7cab53fSVarun R Mallya 	return err;
17*c7cab53fSVarun R Mallya }
18*c7cab53fSVarun R Mallya 
19*c7cab53fSVarun R Mallya SEC("fentry/bpf_fentry_test1")
20*c7cab53fSVarun R Mallya int BPF_PROG(fentry)
21*c7cab53fSVarun R Mallya {
22*c7cab53fSVarun R Mallya 	return 0;
23*c7cab53fSVarun R Mallya }
24*c7cab53fSVarun R Mallya 
25*c7cab53fSVarun R Mallya char _license[] SEC("license") = "GPL";
26