xref: /linux/tools/testing/selftests/bpf/progs/test_global_func16.c (revision d0034a7a4ac7fae708146ac0059b9c47a1543f0d)
1*8b08807dSDmitrii Banshchikov // SPDX-License-Identifier: GPL-2.0-only
2*8b08807dSDmitrii Banshchikov #include <stddef.h>
3*8b08807dSDmitrii Banshchikov #include <linux/bpf.h>
4*8b08807dSDmitrii Banshchikov #include <bpf/bpf_helpers.h>
5*8b08807dSDmitrii Banshchikov #include "bpf_misc.h"
6*8b08807dSDmitrii Banshchikov 
foo(int (* arr)[10])7*8b08807dSDmitrii Banshchikov __noinline int foo(int (*arr)[10])
8*8b08807dSDmitrii Banshchikov {
9*8b08807dSDmitrii Banshchikov 	if (arr)
10*8b08807dSDmitrii Banshchikov 		return (*arr)[9];
11*8b08807dSDmitrii Banshchikov 
12*8b08807dSDmitrii Banshchikov 	return 0;
13*8b08807dSDmitrii Banshchikov }
14*8b08807dSDmitrii Banshchikov 
15*8b08807dSDmitrii Banshchikov SEC("cgroup_skb/ingress")
16*8b08807dSDmitrii Banshchikov __success
global_func16(struct __sk_buff * skb)17*8b08807dSDmitrii Banshchikov int global_func16(struct __sk_buff *skb)
18*8b08807dSDmitrii Banshchikov {
19*8b08807dSDmitrii Banshchikov 	int array[10];
20*8b08807dSDmitrii Banshchikov 
21*8b08807dSDmitrii Banshchikov 	const int rv = foo(&array);
22*8b08807dSDmitrii Banshchikov 
23 	return rv ? 1 : 0;
24 }
25