Lines Matching refs:kattr
86 static int bpf_test_finish(const union bpf_attr *kattr,
90 void __user *data_out = u64_to_user_ptr(kattr->test.data_out);
97 if (kattr->test.data_size_out &&
98 copy_size > kattr->test.data_size_out) {
99 copy_size = kattr->test.data_size_out;
178 static void *bpf_test_init(const union bpf_attr *kattr, u32 size,
181 void __user *data_in = u64_to_user_ptr(kattr->test.data_in);
182 u32 user_size = kattr->test.data_size_in;
205 const union bpf_attr *kattr,
213 if (kattr->test.flags || kattr->test.cpu)
265 const union bpf_attr *kattr,
268 void __user *ctx_in = u64_to_user_ptr(kattr->test.ctx_in);
269 __u32 ctx_size_in = kattr->test.ctx_size_in;
271 int cpu = kattr->test.cpu, err = 0;
275 if (kattr->test.data_in || kattr->test.data_out ||
276 kattr->test.ctx_out || kattr->test.duration ||
277 kattr->test.repeat)
284 if ((kattr->test.flags & BPF_F_TEST_RUN_ON_CPU) == 0 && cpu != 0)
302 if ((kattr->test.flags & BPF_F_TEST_RUN_ON_CPU) == 0 ||
327 static void *bpf_ctx_init(const union bpf_attr *kattr, u32 max_size)
329 void __user *data_in = u64_to_user_ptr(kattr->test.ctx_in);
330 void __user *data_out = u64_to_user_ptr(kattr->test.ctx_out);
331 u32 size = kattr->test.ctx_size_in;
358 static int bpf_ctx_finish(const union bpf_attr *kattr,
362 void __user *data_out = u64_to_user_ptr(kattr->test.ctx_out);
369 if (copy_size > kattr->test.ctx_size_out) {
370 copy_size = kattr->test.ctx_size_out;
491 int bpf_prog_test_run_skb(struct bpf_prog *prog, const union bpf_attr *kattr,
497 u32 size = kattr->test.data_size_in;
498 u32 repeat = kattr->test.repeat;
507 if (kattr->test.flags || kattr->test.cpu)
510 data = bpf_test_init(kattr, size, NET_SKB_PAD + NET_IP_ALIGN,
515 ctx = bpf_ctx_init(kattr, sizeof(struct __sk_buff));
612 ret = bpf_test_finish(kattr, uattr, skb->data, size, retval, duration);
614 ret = bpf_ctx_finish(kattr, uattr, ctx,
625 int bpf_prog_test_run_xdp(struct bpf_prog *prog, const union bpf_attr *kattr,
630 u32 size = kattr->test.data_size_in;
631 u32 repeat = kattr->test.repeat;
642 if (kattr->test.ctx_in || kattr->test.ctx_out)
648 data = bpf_test_init(kattr, max_data_sz, headroom, tailroom);
666 ret = bpf_test_finish(kattr, uattr, xdp.data, size, retval, duration);
689 const union bpf_attr *kattr,
692 u32 size = kattr->test.data_size_in;
694 u32 repeat = kattr->test.repeat;
708 if (kattr->test.flags || kattr->test.cpu)
714 data = bpf_test_init(kattr, size, 0, 0);
723 user_ctx = bpf_ctx_init(kattr, sizeof(struct bpf_flow_keys));
773 ret = bpf_test_finish(kattr, uattr, &flow_keys, sizeof(flow_keys),
776 ret = bpf_ctx_finish(kattr, uattr, user_ctx,