diff options
Diffstat (limited to 'tools/testing')
| -rw-r--r-- | tools/testing/selftests/bpf/progs/async_stack_depth.c | 25 | ||||
| -rw-r--r-- | tools/testing/selftests/tc-testing/config | 2 | ||||
| -rw-r--r-- | tools/testing/selftests/tc-testing/settings | 1 | 
3 files changed, 26 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"; diff --git a/tools/testing/selftests/tc-testing/config b/tools/testing/selftests/tc-testing/config index 6e73b09c20c8..71706197ba0f 100644 --- a/tools/testing/selftests/tc-testing/config +++ b/tools/testing/selftests/tc-testing/config @@ -5,6 +5,8 @@ CONFIG_NF_CONNTRACK=m  CONFIG_NF_CONNTRACK_MARK=y  CONFIG_NF_CONNTRACK_ZONES=y  CONFIG_NF_CONNTRACK_LABELS=y +CONFIG_NF_CONNTRACK_PROCFS=y +CONFIG_NF_FLOW_TABLE=m  CONFIG_NF_NAT=m  CONFIG_NETFILTER_XT_TARGET_LOG=m diff --git a/tools/testing/selftests/tc-testing/settings b/tools/testing/selftests/tc-testing/settings new file mode 100644 index 000000000000..e2206265f67c --- /dev/null +++ b/tools/testing/selftests/tc-testing/settings @@ -0,0 +1 @@ +timeout=900 | 
