Lines Matching refs:prog

948 static bool bpf_d_path_allowed(const struct bpf_prog *prog)  in BTF_ID()
950 if (prog->type == BPF_PROG_TYPE_TRACING && in BTF_ID()
951 prog->expected_attach_type == BPF_TRACE_ITER) in BTF_ID()
954 if (prog->type == BPF_PROG_TYPE_LSM) in BTF_ID()
955 return bpf_lsm_is_sleepable_hook(prog->aux->attach_btf_id); in BTF_ID()
958 prog->aux->attach_btf_id); in BTF_ID()
1427 bpf_tracing_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) in bpf_tracing_func_proto() argument
1448 func_proto = bpf_base_func_proto(func_id, prog); in bpf_tracing_func_proto()
1452 if (!bpf_token_capable(prog->aux->token, CAP_SYS_ADMIN)) in bpf_tracing_func_proto()
1464 static bool is_kprobe_multi(const struct bpf_prog *prog) in is_kprobe_multi() argument
1466 return prog->expected_attach_type == BPF_TRACE_KPROBE_MULTI || in is_kprobe_multi()
1467 prog->expected_attach_type == BPF_TRACE_KPROBE_SESSION; in is_kprobe_multi()
1470 static inline bool is_kprobe_session(const struct bpf_prog *prog) in is_kprobe_session() argument
1472 return prog->expected_attach_type == BPF_TRACE_KPROBE_SESSION; in is_kprobe_session()
1475 static inline bool is_uprobe_multi(const struct bpf_prog *prog) in is_uprobe_multi() argument
1477 return prog->expected_attach_type == BPF_TRACE_UPROBE_MULTI || in is_uprobe_multi()
1478 prog->expected_attach_type == BPF_TRACE_UPROBE_SESSION; in is_uprobe_multi()
1481 static inline bool is_uprobe_session(const struct bpf_prog *prog) in is_uprobe_session() argument
1483 return prog->expected_attach_type == BPF_TRACE_UPROBE_SESSION; in is_uprobe_session()
1487 kprobe_prog_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) in kprobe_prog_func_proto() argument
1495 return prog->sleepable ? &bpf_get_stack_sleepable_proto : &bpf_get_stack_proto; in kprobe_prog_func_proto()
1501 if (is_kprobe_multi(prog)) in kprobe_prog_func_proto()
1503 if (is_uprobe_multi(prog)) in kprobe_prog_func_proto()
1507 if (is_kprobe_multi(prog)) in kprobe_prog_func_proto()
1509 if (is_uprobe_multi(prog)) in kprobe_prog_func_proto()
1513 return bpf_tracing_func_proto(func_id, prog); in kprobe_prog_func_proto()
1519 const struct bpf_prog *prog, in kprobe_prog_is_valid_access() argument
1613 tp_prog_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) in tp_prog_func_proto() argument
1625 return bpf_tracing_func_proto(func_id, prog); in tp_prog_func_proto()
1630 const struct bpf_prog *prog, in tp_prog_is_valid_access() argument
1717 pe_prog_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) in pe_prog_func_proto() argument
1733 return bpf_tracing_func_proto(func_id, prog); in pe_prog_func_proto()
1852 raw_tp_prog_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) in raw_tp_prog_func_proto() argument
1864 return bpf_tracing_func_proto(func_id, prog); in raw_tp_prog_func_proto()
1869 tracing_prog_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) in tracing_prog_func_proto() argument
1905 return prog->expected_attach_type == BPF_TRACE_ITER ? in tracing_prog_func_proto()
1909 return prog->expected_attach_type == BPF_TRACE_ITER ? in tracing_prog_func_proto()
1913 return prog->expected_attach_type == BPF_TRACE_ITER ? in tracing_prog_func_proto()
1919 return bpf_prog_has_trampoline(prog) ? &bpf_get_func_arg_proto : NULL; in tracing_prog_func_proto()
1921 return bpf_prog_has_trampoline(prog) ? &bpf_get_func_ret_proto : NULL; in tracing_prog_func_proto()
1923 return bpf_prog_has_trampoline(prog) ? &bpf_get_func_arg_cnt_proto : NULL; in tracing_prog_func_proto()
1925 if (prog->type == BPF_PROG_TYPE_TRACING && in tracing_prog_func_proto()
1926 prog->expected_attach_type == BPF_TRACE_RAW_TP) in tracing_prog_func_proto()
1928 return bpf_prog_has_trampoline(prog) ? &bpf_get_attach_cookie_proto_tracing : NULL; in tracing_prog_func_proto()
1930 fn = raw_tp_prog_func_proto(func_id, prog); in tracing_prog_func_proto()
1931 if (!fn && prog->expected_attach_type == BPF_TRACE_ITER) in tracing_prog_func_proto()
1932 fn = bpf_iter_get_func_proto(func_id, prog); in tracing_prog_func_proto()
1939 const struct bpf_prog *prog, in raw_tp_prog_is_valid_access() argument
1947 const struct bpf_prog *prog, in tracing_prog_is_valid_access() argument
1950 return bpf_tracing_btf_ctx_access(off, size, type, prog, info); in tracing_prog_is_valid_access()
1953 int __weak bpf_prog_test_run_tracing(struct bpf_prog *prog, in bpf_prog_test_run_tracing() argument
1982 const struct bpf_prog *prog, in raw_tp_writable_prog_is_valid_access() argument
1990 return raw_tp_prog_is_valid_access(off, size, type, prog, info); in raw_tp_writable_prog_is_valid_access()
2002 const struct bpf_prog *prog, in pe_prog_is_valid_access() argument
2042 struct bpf_prog *prog, u32 *target_size) in pe_prog_convert_ctx_access() argument
2089 struct bpf_prog *prog, in perf_event_attach_bpf_prog() argument
2100 if (prog->kprobe_override && in perf_event_attach_bpf_prog()
2107 if (event->prog) in perf_event_attach_bpf_prog()
2117 ret = bpf_prog_array_copy(old_array, NULL, prog, bpf_cookie, &new_array); in perf_event_attach_bpf_prog()
2122 event->prog = prog; in perf_event_attach_bpf_prog()
2136 struct bpf_prog *prog = NULL; in perf_event_detach_bpf_prog() local
2141 if (!event->prog) in perf_event_detach_bpf_prog()
2148 ret = bpf_prog_array_copy(old_array, event->prog, NULL, 0, &new_array); in perf_event_detach_bpf_prog()
2150 bpf_prog_array_delete_safe(old_array, event->prog); in perf_event_detach_bpf_prog()
2157 prog = event->prog; in perf_event_detach_bpf_prog()
2158 event->prog = NULL; in perf_event_detach_bpf_prog()
2163 if (prog) { in perf_event_detach_bpf_prog()
2171 bpf_prog_put(prog); in perf_event_detach_bpf_prog()
2243 struct bpf_prog *prog = link->link.prog; in __bpf_trace_run() local
2248 if (unlikely(this_cpu_inc_return(*(prog->active)) != 1)) { in __bpf_trace_run()
2249 bpf_prog_inc_misses_counter(prog); in __bpf_trace_run()
2257 (void) bpf_prog_run(prog, args); in __bpf_trace_run()
2262 this_cpu_dec(*(prog->active)); in __bpf_trace_run()
2313 struct bpf_prog *prog = link->link.prog; in bpf_probe_register() local
2319 if (prog->aux->max_ctx_offset > btp->num_args * sizeof(u64)) in bpf_probe_register()
2322 if (prog->aux->max_tp_access > btp->writable_size) in bpf_probe_register()
2339 struct bpf_prog *prog; in bpf_get_perf_event_info() local
2342 prog = event->prog; in bpf_get_perf_event_info()
2343 if (!prog) in bpf_get_perf_event_info()
2347 if (prog->type == BPF_PROG_TYPE_PERF_EVENT) in bpf_get_perf_event_info()
2350 *prog_id = prog->aux->id; in bpf_get_perf_event_info()
2732 bpf_prog_inc_misses_counter(link->link.prog); in kprobe_multi_link_prog_run()
2741 err = bpf_prog_run(link->link.prog, regs); in kprobe_multi_link_prog_run()
2762 return is_kprobe_session(link->link.prog) ? err : 0; in kprobe_multi_link_handler()
2894 int bpf_kprobe_multi_link_attach(const union bpf_attr *attr, struct bpf_prog *prog) in bpf_kprobe_multi_link_attach() argument
2913 if (!is_kprobe_multi(prog)) in bpf_kprobe_multi_link_attach()
2976 if (prog->kprobe_override && addrs_check_error_injection_list(addrs, cnt)) { in bpf_kprobe_multi_link_attach()
2988 &bpf_kprobe_multi_link_lops, prog, attr->link_create.attach_type); in bpf_kprobe_multi_link_attach()
2996 if ((flags & BPF_F_KPROBE_MULTI_RETURN) || is_kprobe_session(prog)) in bpf_kprobe_multi_link_attach()
2998 if (is_kprobe_session(prog)) in bpf_kprobe_multi_link_attach()
3042 int bpf_kprobe_multi_link_attach(const union bpf_attr *attr, struct bpf_prog *prog) in bpf_kprobe_multi_link_attach() argument
3245 struct bpf_prog *prog = link->link.prog; in uprobe_prog_run() local
3246 bool sleepable = prog->sleepable; in uprobe_prog_run()
3261 err = bpf_prog_run(link->link.prog, regs); in uprobe_prog_run()
3325 int bpf_uprobe_multi_link_attach(const union bpf_attr *attr, struct bpf_prog *prog) in bpf_uprobe_multi_link_attach() argument
3348 if (!is_uprobe_multi(prog)) in bpf_uprobe_multi_link_attach()
3428 if (flags & BPF_F_UPROBE_MULTI_RETURN || is_uprobe_session(prog)) in bpf_uprobe_multi_link_attach()
3430 if (is_uprobe_session(prog)) in bpf_uprobe_multi_link_attach()
3443 &bpf_uprobe_multi_link_lops, prog, attr->link_create.attach_type); in bpf_uprobe_multi_link_attach()
3476 int bpf_uprobe_multi_link_attach(const union bpf_attr *attr, struct bpf_prog *prog) in bpf_uprobe_multi_link_attach() argument
3515 static int bpf_kprobe_multi_filter(const struct bpf_prog *prog, u32 kfunc_id) in BTF_ID_FLAGS()
3520 if (!is_kprobe_session(prog) && !is_uprobe_session(prog)) in BTF_ID_FLAGS()