diff options
| author | Mark Brown <[email protected]> | 2023-07-23 22:33:05 +0000 |
|---|---|---|
| committer | Mark Brown <[email protected]> | 2023-07-23 22:33:05 +0000 |
| commit | de1b43a57aff8b1808bbfe0402932f9e373d1172 (patch) | |
| tree | 699c828946223aab18a0aab5175e6902a8ce2e42 /tools/testing/selftests/bpf/progs/async_stack_depth.c | |
| parent | ASoC: wm8960: Add DAC filter characteristics selection (diff) | |
| parent | Linux 6.5-rc3 (diff) | |
| download | kernel-de1b43a57aff8b1808bbfe0402932f9e373d1172.tar.gz kernel-de1b43a57aff8b1808bbfe0402932f9e373d1172.zip | |
ASoC: Merge up fixes from mainline
There's several things here that will really help my CI.
Diffstat (limited to 'tools/testing/selftests/bpf/progs/async_stack_depth.c')
| -rw-r--r-- | tools/testing/selftests/bpf/progs/async_stack_depth.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/tools/testing/selftests/bpf/progs/async_stack_depth.c b/tools/testing/selftests/bpf/progs/async_stack_depth.c index 477ba950bb43..3517c0e01206 100644 --- a/tools/testing/selftests/bpf/progs/async_stack_depth.c +++ b/tools/testing/selftests/bpf/progs/async_stack_depth.c @@ -22,9 +22,16 @@ static int timer_cb(void *map, int *key, struct bpf_timer *timer) return buf[69]; } +__attribute__((noinline)) +static int bad_timer_cb(void *map, int *key, struct bpf_timer *timer) +{ + volatile char buf[300] = {}; + return buf[255] + timer_cb(NULL, NULL, NULL); +} + SEC("tc") -__failure __msg("combined stack size of 2 calls") -int prog(struct __sk_buff *ctx) +__failure __msg("combined stack size of 2 calls is 576. Too large") +int pseudo_call_check(struct __sk_buff *ctx) { struct hmap_elem *elem; volatile char buf[256] = {}; @@ -37,4 +44,18 @@ int prog(struct __sk_buff *ctx) return bpf_timer_set_callback(&elem->timer, timer_cb) + buf[0]; } +SEC("tc") +__failure __msg("combined stack size of 2 calls is 608. Too large") +int async_call_root_check(struct __sk_buff *ctx) +{ + struct hmap_elem *elem; + volatile char buf[256] = {}; + + elem = bpf_map_lookup_elem(&hmap, &(int){0}); + if (!elem) + return 0; + + return bpf_timer_set_callback(&elem->timer, bad_timer_cb) + buf[0]; +} + char _license[] SEC("license") = "GPL"; |
