Lines Matching refs:cnt
184 struct bpf_insn *insn, int cnt) in add_kfunc_in_insns() argument
188 for (i = 0; i < cnt; i++, insn++) { in add_kfunc_in_insns()
216 struct bpf_prog *new_prog, u32 off, u32 cnt) in adjust_insn_aux_data() argument
228 data[off].zext_dst = bpf_insn_def32(new_prog, insn + off + cnt - 1) >= 0; in adjust_insn_aux_data()
230 if (cnt == 1) in adjust_insn_aux_data()
235 memmove(data + off + cnt - 1, data + off, in adjust_insn_aux_data()
236 sizeof(struct bpf_insn_aux_data) * (prog_len - off - cnt + 1)); in adjust_insn_aux_data()
237 memset(data + off, 0, sizeof(struct bpf_insn_aux_data) * (cnt - 1)); in adjust_insn_aux_data()
238 for (i = off; i < off + cnt - 1; i++) { in adjust_insn_aux_data()
251 if (data[off + cnt - 1].indirect_target) { in adjust_insn_aux_data()
253 data[off + cnt - 1].indirect_target = 0; in adjust_insn_aux_data()
375 u32 off, u32 cnt) in adjust_subprog_starts_after_remove() argument
385 if (env->subprog_info[j].start >= off + cnt) in adjust_subprog_starts_after_remove()
390 if (env->subprog_info[j].start != off + cnt) in adjust_subprog_starts_after_remove()
429 env->subprog_info[i].start -= cnt; in adjust_subprog_starts_after_remove()
435 u32 cnt) in bpf_adj_linfo_after_remove() argument
455 if (linfo[i].insn_off < off + cnt) in bpf_adj_linfo_after_remove()
465 (i == nr_linfo || linfo[i].insn_off != off + cnt)) { in bpf_adj_linfo_after_remove()
467 linfo[--i].insn_off = off + cnt; in bpf_adj_linfo_after_remove()
481 linfo[i].insn_off -= cnt; in bpf_adj_linfo_after_remove()
515 static int verifier_remove_insns(struct bpf_verifier_env *env, u32 off, u32 cnt) in verifier_remove_insns() argument
522 bpf_prog_offload_remove_insns(env, off, cnt); in verifier_remove_insns()
524 bpf_clear_insn_aux_data(env, off, cnt); in verifier_remove_insns()
526 err = bpf_remove_insns(env->prog, off, cnt); in verifier_remove_insns()
530 err = adjust_subprog_starts_after_remove(env, off, cnt); in verifier_remove_insns()
534 err = bpf_adj_linfo_after_remove(env, off, cnt); in verifier_remove_insns()
538 adjust_insn_arrays_after_remove(env, off, cnt); in verifier_remove_insns()
540 memmove(aux_data + off, aux_data + off + cnt, in verifier_remove_insns()
541 sizeof(*aux_data) * (orig_prog_len - off - cnt)); in verifier_remove_insns()
542 env->insn_aux_data_len -= cnt; in verifier_remove_insns()
745 int i, cnt, size, ctx_field_size, ret, delta = 0, epilogue_cnt = 0; in bpf_convert_ctx_accesses() local
764 cnt = 0; in bpf_convert_ctx_accesses()
766 insn_buf[cnt++] = BPF_STX_MEM(BPF_DW, BPF_REG_FP, BPF_REG_1, in bpf_convert_ctx_accesses()
768 insn_buf[cnt++] = env->prog->insnsi[0]; in bpf_convert_ctx_accesses()
769 new_prog = bpf_patch_insn_data(env, 0, insn_buf, cnt); in bpf_convert_ctx_accesses()
773 delta += cnt - 1; in bpf_convert_ctx_accesses()
786 cnt = ops->gen_prologue(insn_buf, env->seen_direct_write, in bpf_convert_ctx_accesses()
788 if (cnt >= INSN_BUF_SIZE) { in bpf_convert_ctx_accesses()
791 } else if (cnt) { in bpf_convert_ctx_accesses()
792 new_prog = bpf_patch_insn_data(env, 0, insn_buf, cnt); in bpf_convert_ctx_accesses()
797 delta += cnt - 1; in bpf_convert_ctx_accesses()
799 ret = add_kfunc_in_insns(env, insn_buf, cnt - 1); in bpf_convert_ctx_accesses()
824 cnt = patch - insn_buf; in bpf_convert_ctx_accesses()
825 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_convert_ctx_accesses()
829 delta += cnt - 1; in bpf_convert_ctx_accesses()
872 cnt = 1; in bpf_convert_ctx_accesses()
876 cnt = epilogue_cnt; in bpf_convert_ctx_accesses()
897 cnt = patch - insn_buf; in bpf_convert_ctx_accesses()
898 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_convert_ctx_accesses()
902 delta += cnt - 1; in bpf_convert_ctx_accesses()
995 cnt = convert_ctx_access(type, insn, insn_buf, env->prog, in bpf_convert_ctx_accesses()
997 if (cnt == 0 || cnt >= INSN_BUF_SIZE || in bpf_convert_ctx_accesses()
999 verifier_bug(env, "error during ctx access conversion (%d)", cnt); in bpf_convert_ctx_accesses()
1006 if (shift && cnt + 1 >= INSN_BUF_SIZE) { in bpf_convert_ctx_accesses()
1012 insn_buf[cnt++] = BPF_ALU32_IMM(BPF_RSH, in bpf_convert_ctx_accesses()
1015 insn_buf[cnt++] = BPF_ALU32_IMM(BPF_AND, insn->dst_reg, in bpf_convert_ctx_accesses()
1019 insn_buf[cnt++] = BPF_ALU64_IMM(BPF_RSH, in bpf_convert_ctx_accesses()
1022 insn_buf[cnt++] = BPF_ALU32_IMM(BPF_AND, insn->dst_reg, in bpf_convert_ctx_accesses()
1027 insn_buf[cnt++] = BPF_RAW_INSN(BPF_ALU64 | BPF_MOV | BPF_X, in bpf_convert_ctx_accesses()
1032 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_convert_ctx_accesses()
1036 delta += cnt - 1; in bpf_convert_ctx_accesses()
1482 int cnt = env->subprog_cnt; in add_hidden_subprog() local
1498 info[cnt + 1].start = info[cnt].start; in add_hidden_subprog()
1499 info[cnt].start = prog->len - len + 1; in add_hidden_subprog()
1521 int i, ret, cnt, delta = 0, cur_subprog = 0; in bpf_do_misc_fixups() local
1574 cnt = patch - insn_buf; in bpf_do_misc_fixups()
1576 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
1580 delta += cnt - 1; in bpf_do_misc_fixups()
1621 cnt = patch - insn_buf; in bpf_do_misc_fixups()
1643 cnt = patch - insn_buf; in bpf_do_misc_fixups()
1652 cnt = patch - insn_buf; in bpf_do_misc_fixups()
1664 cnt = patch - insn_buf; in bpf_do_misc_fixups()
1667 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
1671 delta += cnt - 1; in bpf_do_misc_fixups()
1696 cnt = patch - insn_buf; in bpf_do_misc_fixups()
1697 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
1701 delta += cnt - 1; in bpf_do_misc_fixups()
1711 cnt = env->ops->gen_ld_abs(insn, insn_buf); in bpf_do_misc_fixups()
1712 if (cnt == 0 || cnt >= INSN_BUF_SIZE) { in bpf_do_misc_fixups()
1713 verifier_bug(env, "%d insns generated for ld_abs", cnt); in bpf_do_misc_fixups()
1717 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
1721 delta += cnt - 1; in bpf_do_misc_fixups()
1768 cnt = patch - insn_buf; in bpf_do_misc_fixups()
1770 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
1774 delta += cnt - 1; in bpf_do_misc_fixups()
1813 cnt = 7; in bpf_do_misc_fixups()
1815 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
1819 delta += cnt - 1; in bpf_do_misc_fixups()
1834 cnt = 4; in bpf_do_misc_fixups()
1836 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
1840 delta += cnt - 1; in bpf_do_misc_fixups()
1870 cnt = 2; in bpf_do_misc_fixups()
1873 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
1877 delta += cnt - 1; in bpf_do_misc_fixups()
1888 ret = bpf_fixup_kfunc_call(env, insn, insn_buf, i + delta, &cnt); in bpf_do_misc_fixups()
1891 if (cnt == 0) in bpf_do_misc_fixups()
1894 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
1898 delta += cnt - 1; in bpf_do_misc_fixups()
1980 cnt = 3; in bpf_do_misc_fixups()
1981 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
1985 delta += cnt - 1; in bpf_do_misc_fixups()
2012 cnt = 3; in bpf_do_misc_fixups()
2014 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
2018 delta += cnt - 1; in bpf_do_misc_fixups()
2031 cnt = 2; in bpf_do_misc_fixups()
2033 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
2037 delta += cnt - 1; in bpf_do_misc_fixups()
2065 cnt = ops->map_gen_lookup(map_ptr, insn_buf); in bpf_do_misc_fixups()
2066 if (cnt == -EOPNOTSUPP) in bpf_do_misc_fixups()
2068 if (cnt <= 0 || cnt >= INSN_BUF_SIZE) { in bpf_do_misc_fixups()
2069 verifier_bug(env, "%d insns generated for map lookup", cnt); in bpf_do_misc_fixups()
2077 insn_buf, cnt); in bpf_do_misc_fixups()
2081 delta += cnt - 1; in bpf_do_misc_fixups()
2157 cnt = 3; in bpf_do_misc_fixups()
2160 cnt); in bpf_do_misc_fixups()
2164 delta += cnt - 1; in bpf_do_misc_fixups()
2184 cnt = 3; in bpf_do_misc_fixups()
2187 cnt = 1; in bpf_do_misc_fixups()
2189 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
2193 delta += cnt - 1; in bpf_do_misc_fixups()
2206 cnt = 3; in bpf_do_misc_fixups()
2208 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
2212 delta += cnt - 1; in bpf_do_misc_fixups()
2226 cnt = 1; in bpf_do_misc_fixups()
2231 cnt = 2; in bpf_do_misc_fixups()
2233 insn_buf[cnt++] = BPF_JMP32_REG(BPF_JGE, BPF_REG_2, BPF_REG_0, 6); in bpf_do_misc_fixups()
2234 insn_buf[cnt++] = BPF_ALU64_IMM(BPF_LSH, BPF_REG_2, 3); in bpf_do_misc_fixups()
2235 insn_buf[cnt++] = BPF_ALU64_REG(BPF_ADD, BPF_REG_2, BPF_REG_1); in bpf_do_misc_fixups()
2236 insn_buf[cnt++] = BPF_LDX_MEM(BPF_DW, BPF_REG_0, BPF_REG_2, 0); in bpf_do_misc_fixups()
2237 insn_buf[cnt++] = BPF_STX_MEM(BPF_DW, BPF_REG_3, BPF_REG_0, 0); in bpf_do_misc_fixups()
2238 insn_buf[cnt++] = BPF_MOV64_IMM(BPF_REG_0, 0); in bpf_do_misc_fixups()
2239 insn_buf[cnt++] = BPF_JMP_A(1); in bpf_do_misc_fixups()
2240 insn_buf[cnt++] = BPF_MOV64_IMM(BPF_REG_0, -EINVAL); in bpf_do_misc_fixups()
2242 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
2246 delta += cnt - 1; in bpf_do_misc_fixups()
2268 cnt = 7; in bpf_do_misc_fixups()
2271 cnt = 1; in bpf_do_misc_fixups()
2274 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
2278 delta += cnt - 1; in bpf_do_misc_fixups()
2292 cnt = 1; in bpf_do_misc_fixups()
2297 cnt = 2; in bpf_do_misc_fixups()
2300 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
2304 delta += cnt - 1; in bpf_do_misc_fixups()
2369 cnt = 11; in bpf_do_misc_fixups()
2371 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
2375 delta += cnt - 1; in bpf_do_misc_fixups()
2387 cnt = 2; in bpf_do_misc_fixups()
2389 new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt); in bpf_do_misc_fixups()
2393 delta += cnt - 1; in bpf_do_misc_fixups()
2434 int slots = delta, cnt = 0; in bpf_do_misc_fixups() local
2446 insn_buf[cnt++] = BPF_ST_MEM(BPF_DW, BPF_REG_FP, -stack_depth, in bpf_do_misc_fixups()
2448 insn_buf[cnt++] = BPF_ST_MEM(BPF_DW, BPF_REG_FP, -stack_depth + 8, 0); in bpf_do_misc_fixups()
2451 insn_buf[cnt++] = BPF_ST_MEM(BPF_DW, BPF_REG_FP, -stack_depth, in bpf_do_misc_fixups()
2455 insn_buf[cnt++] = env->prog->insnsi[subprog_start]; in bpf_do_misc_fixups()
2457 new_prog = bpf_patch_insn_data(env, subprog_start, insn_buf, cnt); in bpf_do_misc_fixups()
2512 u32 cnt = 0; in inline_bpf_loop() local
2521 insn_buf[cnt++] = BPF_JMP_IMM(BPF_JLE, BPF_REG_1, BPF_MAX_LOOPS, 2); in inline_bpf_loop()
2522 insn_buf[cnt++] = BPF_MOV32_IMM(BPF_REG_0, -E2BIG); in inline_bpf_loop()
2523 insn_buf[cnt++] = BPF_JMP_IMM(BPF_JA, 0, 0, 16); in inline_bpf_loop()
2525 insn_buf[cnt++] = BPF_STX_MEM(BPF_DW, BPF_REG_10, BPF_REG_6, r6_offset); in inline_bpf_loop()
2526 insn_buf[cnt++] = BPF_STX_MEM(BPF_DW, BPF_REG_10, BPF_REG_7, r7_offset); in inline_bpf_loop()
2527 insn_buf[cnt++] = BPF_STX_MEM(BPF_DW, BPF_REG_10, BPF_REG_8, r8_offset); in inline_bpf_loop()
2529 insn_buf[cnt++] = BPF_MOV64_REG(reg_loop_max, BPF_REG_1); in inline_bpf_loop()
2530 insn_buf[cnt++] = BPF_MOV32_IMM(reg_loop_cnt, 0); in inline_bpf_loop()
2531 insn_buf[cnt++] = BPF_MOV64_REG(reg_loop_ctx, BPF_REG_3); in inline_bpf_loop()
2535 insn_buf[cnt++] = BPF_JMP_REG(BPF_JGE, reg_loop_cnt, reg_loop_max, 5); in inline_bpf_loop()
2539 insn_buf[cnt++] = BPF_MOV64_REG(BPF_REG_1, reg_loop_cnt); in inline_bpf_loop()
2540 insn_buf[cnt++] = BPF_MOV64_REG(BPF_REG_2, reg_loop_ctx); in inline_bpf_loop()
2541 insn_buf[cnt++] = BPF_CALL_REL(0); in inline_bpf_loop()
2543 insn_buf[cnt++] = BPF_ALU64_IMM(BPF_ADD, reg_loop_cnt, 1); in inline_bpf_loop()
2545 insn_buf[cnt++] = BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, -6); in inline_bpf_loop()
2549 insn_buf[cnt++] = BPF_MOV64_REG(BPF_REG_0, reg_loop_cnt); in inline_bpf_loop()
2551 insn_buf[cnt++] = BPF_LDX_MEM(BPF_DW, BPF_REG_6, BPF_REG_10, r6_offset); in inline_bpf_loop()
2552 insn_buf[cnt++] = BPF_LDX_MEM(BPF_DW, BPF_REG_7, BPF_REG_10, r7_offset); in inline_bpf_loop()
2553 insn_buf[cnt++] = BPF_LDX_MEM(BPF_DW, BPF_REG_8, BPF_REG_10, r8_offset); in inline_bpf_loop()
2555 *total_cnt = cnt; in inline_bpf_loop()
2556 new_prog = bpf_patch_insn_data(env, position, insn_buf, cnt); in inline_bpf_loop()
2589 int i, cur_subprog = 0, cnt, delta = 0; in bpf_optimize_bpf_loop() local
2608 &cnt); in bpf_optimize_bpf_loop()
2612 delta += cnt - 1; in bpf_optimize_bpf_loop()