Lines Matching defs:patch
248 const struct bpf_insn *patch, u32 len)
264 new_prog = bpf_patch_insn_single(env->prog, off, patch, len);
585 struct bpf_insn *patch;
639 patch = rnd_hi32_patch;
668 patch = zext_patch;
671 new_prog = bpf_patch_insn_data(env, adj_idx, patch, patch_len);
766 struct bpf_insn *patch = insn_buf;
768 *patch++ = BPF_ST_NOSPEC();
769 *patch++ = *insn;
770 cnt = patch - insn_buf;
782 * patching to insn. *insn should equal patch[1] now.
839 struct bpf_insn *patch = insn_buf;
841 *patch++ = *insn;
842 *patch++ = BPF_ST_NOSPEC();
843 cnt = patch - insn_buf;
1274 * patch it anymore as we're freeing the subprog JIT memory.
1451 /* The function requires that first instruction in 'patch' is insnsi[prog->len - 1] */
1452 static int add_hidden_subprog(struct bpf_verifier_env *env, struct bpf_insn *patch, int len)
1467 prog = bpf_patch_insn_data(env, env->prog->len - 1, patch, len);
1500 struct bpf_insn *patch = insn_buf;
1502 *patch++ = env->prog->insnsi[insn_cnt - 1];
1503 *patch++ = BPF_MOV64_REG(BPF_REG_0, BPF_REG_1);
1504 *patch++ = BPF_EXIT_INSN();
1505 ret = add_hidden_subprog(env, insn_buf, patch - insn_buf);
1541 struct bpf_insn *patch = insn_buf;
1544 *patch++ = BPF_RAW_INSN((is64 ? BPF_ALU64 : BPF_ALU) |
1548 *patch++ = BPF_MOV32_IMM(insn->dst_reg, 0);
1550 cnt = patch - insn_buf;
1571 struct bpf_insn *patch = insn_buf;
1578 *patch++ = BPF_MOV64_REG(BPF_REG_AX, insn->src_reg);
1579 *patch++ = BPF_RAW_INSN((is64 ? BPF_ALU64 : BPF_ALU) |
1582 *patch++ = BPF_RAW_INSN((is64 ? BPF_JMP : BPF_JMP32) |
1585 *patch++ = BPF_RAW_INSN((is64 ? BPF_JMP : BPF_JMP32) |
1588 *patch++ = BPF_RAW_INSN((is64 ? BPF_ALU64 : BPF_ALU) |
1592 *patch++ = BPF_RAW_INSN((is64 ? BPF_ALU64 : BPF_ALU) |
1595 *patch++ = BPF_JMP_IMM(BPF_JA, 0, 0, 1);
1596 *patch++ = *insn;
1597 cnt = patch - insn_buf;
1601 *patch++ = BPF_MOV64_REG(BPF_REG_AX, insn->src_reg);
1602 *patch++ = BPF_RAW_INSN((is64 ? BPF_ALU64 : BPF_ALU) |
1605 *patch++ = BPF_RAW_INSN((is64 ? BPF_JMP : BPF_JMP32) |
1608 *patch++ = BPF_RAW_INSN((is64 ? BPF_JMP : BPF_JMP32) |
1611 *patch++ = BPF_MOV32_IMM(insn->dst_reg, 0);
1612 *patch++ = BPF_JMP_IMM(BPF_JA, 0, 0, 1);
1613 *patch++ = *insn;
1616 *patch++ = BPF_JMP_IMM(BPF_JA, 0, 0, 1);
1617 *patch++ = BPF_MOV32_REG(insn->dst_reg, insn->dst_reg);
1619 cnt = patch - insn_buf;
1622 *patch++ = BPF_RAW_INSN((is64 ? BPF_JMP : BPF_JMP32) |
1625 *patch++ = BPF_ALU32_REG(BPF_XOR, insn->dst_reg, insn->dst_reg);
1626 *patch++ = BPF_JMP_IMM(BPF_JA, 0, 0, 1);
1627 *patch++ = *insn;
1628 cnt = patch - insn_buf;
1631 *patch++ = BPF_RAW_INSN((is64 ? BPF_JMP : BPF_JMP32) |
1634 *patch++ = *insn;
1637 *patch++ = BPF_JMP_IMM(BPF_JA, 0, 0, 1);
1638 *patch++ = BPF_MOV32_REG(insn->dst_reg, insn->dst_reg);
1640 cnt = patch - insn_buf;
1657 struct bpf_insn *patch = insn_buf;
1663 *patch++ = BPF_MOV64_REG(BPF_REG_AX, insn->src_reg);
1665 *patch++ = BPF_ALU64_IMM(BPF_ADD, BPF_REG_AX, insn->off);
1666 *patch++ = BPF_ALU64_IMM(BPF_RSH, BPF_REG_AX, 32);
1667 *patch++ = BPF_JMP_IMM(BPF_JLE, BPF_REG_AX, uaddress_limit >> 32, 2);
1668 *patch++ = *insn;
1669 *patch++ = BPF_JMP_IMM(BPF_JA, 0, 0, 1);
1670 *patch++ = BPF_MOV64_IMM(insn->dst_reg, 0);
1672 cnt = patch - insn_buf;
1708 struct bpf_insn *patch = insn_buf;
1724 *patch++ = BPF_MOV32_IMM(BPF_REG_AX, aux->alu_limit);
1727 *patch++ = BPF_ALU64_IMM(BPF_MUL, off_reg, -1);
1728 *patch++ = BPF_MOV32_IMM(BPF_REG_AX, aux->alu_limit);
1729 *patch++ = BPF_ALU64_REG(BPF_SUB, BPF_REG_AX, off_reg);
1730 *patch++ = BPF_ALU64_REG(BPF_OR, BPF_REG_AX, off_reg);
1731 *patch++ = BPF_ALU64_IMM(BPF_NEG, BPF_REG_AX, 0);
1732 *patch++ = BPF_ALU64_IMM(BPF_ARSH, BPF_REG_AX, 63);
1733 *patch++ = BPF_ALU64_REG(BPF_AND, BPF_REG_AX, off_reg);
1736 *patch++ = BPF_MOV64_REG(insn->dst_reg, insn->src_reg);
1741 *patch++ = *insn;
1743 *patch++ = BPF_ALU64_IMM(BPF_MUL, off_reg, -1);
1744 cnt = patch - insn_buf;
1963 /* patch with 'r1 = *(u64 *)(r1 + 0)' since for percpu data,
2450 /* Return error and jump to the end of the patch if