Linux Audio

Check our new training course

Loading...
v6.13.7
 1// SPDX-License-Identifier: GPL-2.0-only
 2/* Copyright (c) 2020 Facebook */
 3#include <stddef.h>
 4#include <linux/bpf.h>
 5#include <bpf/bpf_helpers.h>
 6#include "bpf_misc.h"
 7
 8__attribute__ ((noinline))
 9int f1(struct __sk_buff *skb)
10{
11	return skb->len;
12}
13
14__attribute__ ((noinline))
15int f2(int val, struct __sk_buff *skb)
16{
17	return f1(skb) + val;
18}
19
20__attribute__ ((noinline))
21int f3(int val, struct __sk_buff *skb, int var)
22{
23	return f2(var, skb) + val;
24}
25
26__attribute__ ((noinline))
27int f4(struct __sk_buff *skb)
28{
29	return f3(1, skb, 2);
30}
31
32__attribute__ ((noinline))
33int f5(struct __sk_buff *skb)
34{
35	return f4(skb);
36}
37
38__attribute__ ((noinline))
39int f6(struct __sk_buff *skb)
40{
41	return f5(skb);
42}
43
44__attribute__ ((noinline))
45int f7(struct __sk_buff *skb)
46{
47	return f6(skb);
48}
49
50__attribute__ ((noinline))
51int f8(struct __sk_buff *skb)
52{
53	return f7(skb);
54}
55
56SEC("tc")
57__failure __msg("the call stack of 8 frames")
58int global_func3(struct __sk_buff *skb)
59{
60	return f8(skb);
61}
v6.8
 1// SPDX-License-Identifier: GPL-2.0-only
 2/* Copyright (c) 2020 Facebook */
 3#include <stddef.h>
 4#include <linux/bpf.h>
 5#include <bpf/bpf_helpers.h>
 6#include "bpf_misc.h"
 7
 8__attribute__ ((noinline))
 9int f1(struct __sk_buff *skb)
10{
11	return skb->len;
12}
13
14__attribute__ ((noinline))
15int f2(int val, struct __sk_buff *skb)
16{
17	return f1(skb) + val;
18}
19
20__attribute__ ((noinline))
21int f3(int val, struct __sk_buff *skb, int var)
22{
23	return f2(var, skb) + val;
24}
25
26__attribute__ ((noinline))
27int f4(struct __sk_buff *skb)
28{
29	return f3(1, skb, 2);
30}
31
32__attribute__ ((noinline))
33int f5(struct __sk_buff *skb)
34{
35	return f4(skb);
36}
37
38__attribute__ ((noinline))
39int f6(struct __sk_buff *skb)
40{
41	return f5(skb);
42}
43
44__attribute__ ((noinline))
45int f7(struct __sk_buff *skb)
46{
47	return f6(skb);
48}
49
50__attribute__ ((noinline))
51int f8(struct __sk_buff *skb)
52{
53	return f7(skb);
54}
55
56SEC("tc")
57__failure __msg("the call stack of 8 frames")
58int global_func3(struct __sk_buff *skb)
59{
60	return f8(skb);
61}