• Home
  • Raw
  • Download

Lines Matching refs:subprog

1795 						int subprog)  in push_async_cb()  argument
1828 subprog /* subprog number within this prog */); in push_async_cb()
2193 struct bpf_subprog_info *subprog = env->subprog_info; in add_subprog_and_kfunc() local
2224 subprog[env->subprog_cnt].start = insn_cnt; in add_subprog_and_kfunc()
2228 verbose(env, "func#%d @%d\n", i, subprog[i].start); in add_subprog_and_kfunc()
2236 struct bpf_subprog_info *subprog = env->subprog_info; in check_subprogs() local
2241 subprog_start = subprog[cur_subprog].start; in check_subprogs()
2242 subprog_end = subprog[cur_subprog + 1].start; in check_subprogs()
2249 subprog[cur_subprog].has_tail_call = true; in check_subprogs()
2252 subprog[cur_subprog].has_ld_abs = true; in check_subprogs()
2276 subprog_end = subprog[cur_subprog + 1].start; in check_subprogs()
4472 struct bpf_subprog_info *subprog = env->subprog_info; in check_max_stack_depth_subprog() local
4480 i = subprog[idx].start; in check_max_stack_depth_subprog()
4501 if (idx && subprog[idx].has_tail_call && depth >= 256) { in check_max_stack_depth_subprog()
4510 depth += round_up(max_t(u32, subprog[idx].stack_depth, 1), 32); in check_max_stack_depth_subprog()
4517 subprog_end = subprog[idx + 1].start; in check_max_stack_depth_subprog()
4535 if (subprog[sidx].is_async_cb) { in check_max_stack_depth_subprog()
4536 if (subprog[sidx].has_tail_call) { in check_max_stack_depth_subprog()
4547 if (subprog[idx].has_tail_call) in check_max_stack_depth_subprog()
4565 subprog[ret_prog[j]].tail_call_reachable = true; in check_max_stack_depth_subprog()
4566 if (subprog[0].tail_call_reachable) in check_max_stack_depth_subprog()
4574 depth -= round_up(max_t(u32, subprog[idx].stack_depth, 1), 32); in check_max_stack_depth_subprog()
4601 int start = idx + insn->imm + 1, subprog; in get_callee_stack_depth() local
4603 subprog = find_subprog(env, start); in get_callee_stack_depth()
4604 if (subprog < 0) { in get_callee_stack_depth()
4609 return env->subprog_info[subprog].stack_depth; in get_callee_stack_depth()
6913 int *insn_idx, int subprog, in __check_func_call() argument
6937 is_global = func_info_aux[subprog].linkage == BTF_FUNC_GLOBAL; in __check_func_call()
6938 err = btf_check_subprog_call(env, subprog, caller->regs); in __check_func_call()
6944 subprog); in __check_func_call()
6950 subprog); in __check_func_call()
6978 env->subprog_info[subprog].is_async_cb = true; in __check_func_call()
6979 async_cb = push_async_cb(env, env->subprog_info[subprog].start, in __check_func_call()
6980 *insn_idx, subprog); in __check_func_call()
7011 subprog /* subprog number within this prog */); in __check_func_call()
7028 *insn_idx = env->subprog_info[subprog].start - 1; in __check_func_call()
7088 int subprog, target_insn; in check_func_call() local
7091 subprog = find_subprog(env, target_insn); in check_func_call()
7092 if (subprog < 0) { in check_func_call()
7098 return __check_func_call(env, insn, insn_idx, subprog, set_callee_state); in check_func_call()
13907 int i, j, subprog_start, subprog_end = 0, len, subprog; in jit_subprogs() local
13924 subprog = find_subprog(env, i + insn->imm + 1); in jit_subprogs()
13925 if (subprog < 0) { in jit_subprogs()
13933 insn->off = subprog; in jit_subprogs()
14029 subprog = insn->off; in jit_subprogs()
14030 insn[0].imm = (u32)(long)func[subprog]->bpf_func; in jit_subprogs()
14031 insn[1].imm = ((u64)(long)func[subprog]->bpf_func) >> 32; in jit_subprogs()
14036 subprog = insn->off; in jit_subprogs()
14037 insn->imm = BPF_CALL_IMM(func[subprog]->bpf_func); in jit_subprogs()
14088 subprog = find_subprog(env, i + insn->off + 1); in jit_subprogs()
14089 insn->imm = subprog; in jit_subprogs()
14898 static int do_check_common(struct bpf_verifier_env *env, int subprog) in do_check_common() argument
14923 subprog); in do_check_common()
14924 state->first_insn_idx = env->subprog_info[subprog].start; in do_check_common()
14928 if (subprog || env->prog->type == BPF_PROG_TYPE_EXT) { in do_check_common()
14929 ret = btf_prepare_func_args(env, subprog, regs); in do_check_common()
14949 ret = btf_check_subprog_arg_match(env, subprog, regs); in do_check_common()
15149 int ret = 0, subprog = -1, i; in bpf_check_attach_target() local
15181 subprog = i; in bpf_check_attach_target()
15184 if (subprog == -1) { in bpf_check_attach_target()
15188 conservative = aux->func_info_aux[subprog].unreliable; in bpf_check_attach_target()
15317 if (subprog == 0) in bpf_check_attach_target()
15320 addr = (long) tgt_prog->aux->func[subprog]->bpf_func; in bpf_check_attach_target()