Lines Matching refs:insn_idx
339 int insn_idx;
4050 __u32 insn_idx, const char *sym_name,
4053 struct bpf_insn *insn = &prog->insns[insn_idx];
4063 prog->name, sym_name, insn_idx, insn->code);
4083 prog->name, i, ext->name, ext->sym_idx, insn_idx);
4088 reloc_desc->insn_idx = insn_idx;
4112 reloc_desc->insn_idx = insn_idx;
4135 reloc_desc->insn_idx = insn_idx;
4158 map->sec_offset, insn_idx);
4167 reloc_desc->insn_idx = insn_idx;
4185 map->sec_offset, insn_idx);
4195 reloc_desc->insn_idx = insn_idx;
4201 static bool prog_contains_insn(const struct bpf_program *prog, size_t insn_idx)
4203 return insn_idx >= prog->sec_insn_off &&
4204 insn_idx < prog->sec_insn_off + prog->sec_insn_cnt;
4208 size_t sec_idx, size_t insn_idx)
4221 (prog->sec_idx == sec_idx && prog->sec_insn_off <= insn_idx))
4230 if (prog->sec_idx == sec_idx && prog_contains_insn(prog, insn_idx))
4244 __u32 insn_idx;
4294 insn_idx = rel->r_offset / BPF_INSN_SZ;
4308 relo_sec_name, i, insn_idx, sym_name);
4310 prog = find_prog_by_sec_insn(obj, sec_idx, insn_idx);
4313 relo_sec_name, i, sec_name, insn_idx);
4323 /* adjust insn_idx to local BPF program frame of reference */
4324 insn_idx -= prog->sec_insn_off;
4326 insn_idx, sym_name, sym, rel);
5706 const struct bpf_core_relo *core_relo, int insn_idx)
5716 relo->insn_idx = insn_idx;
5723 static const struct bpf_core_relo *find_relo_core(struct bpf_program *prog, int insn_idx)
5730 if (relo->type != RELO_CORE || relo->insn_idx != insn_idx)
5794 int i, err = 0, insn_idx, sec_idx, sec_num;
5831 insn_idx = rec->insn_off / BPF_INSN_SZ;
5832 prog = find_prog_by_sec_insn(obj, sec_idx, insn_idx);
5843 sec_name, i, insn_idx);
5852 /* adjust insn_idx from section frame of reference to the local
5856 insn_idx = insn_idx - prog->sec_insn_off;
5857 if (insn_idx >= prog->insns_cnt)
5859 insn = &prog->insns[insn_idx];
5861 err = record_relo_core(prog, rec, insn_idx);
5878 err = bpf_core_patch_insn(prog->name, insn, insn_idx, rec, i, &targ_res);
5881 prog->name, i, insn_idx, err);
5906 int insn_idx, struct bpf_insn *insn,
5912 prog->name, relo_idx, insn_idx, map_idx, map->name);
5936 int insn_idx, struct bpf_insn *insn,
5940 prog->name, relo_idx, insn_idx, ext->name);
5967 struct bpf_insn *insn = &prog->insns[relo->insn_idx];
5981 poison_map_ldimm64(prog, i, relo->insn_idx, insn,
5995 poison_map_ldimm64(prog, i, relo->insn_idx, insn,
6028 poison_kfunc_call(prog, i, relo->insn_idx, insn,
6198 size_t insn_idx = *(const size_t *)key;
6201 if (insn_idx == relo->insn_idx)
6203 return insn_idx < relo->insn_idx ? -1 : 1;
6206 static struct reloc_desc *find_prog_insn_relo(const struct bpf_program *prog, size_t insn_idx)
6210 return bsearch(&insn_idx, prog->reloc_desc, prog->nr_reloc,
6234 relos[i].insn_idx += subprog->sub_insn_off;
6235 /* After insn_idx adjustment the 'relos' array is still sorted
6236 * by insn_idx and doesn't break bsearch.
6247 size_t sub_insn_idx, insn_idx, new_cnt;
6257 for (insn_idx = 0; insn_idx < prog->sec_insn_cnt; insn_idx++) {
6258 insn = &main_prog->insns[prog->sub_insn_off + insn_idx];
6262 relo = find_prog_insn_relo(prog, insn_idx);
6270 prog->name, insn_idx, relo->type);
6294 prog->name, insn_idx);
6303 sub_insn_idx = prog->sec_insn_off + insn_idx + insn->imm + 1;
6354 insn = &main_prog->insns[prog->sub_insn_off + insn_idx];
6361 insn->imm = subprog->sub_insn_off - (prog->sub_insn_off + insn_idx) - 1;
6364 prog->name, insn_idx, insn->imm, subprog->name, subprog->sub_insn_off);
6494 if (a->insn_idx != b->insn_idx)
6495 return a->insn_idx < b->insn_idx ? -1 : 1;
6497 /* no two relocations should have the same insn_idx, but ... */
6546 struct bpf_insn *insn = &prog->insns[relo->insn_idx];
7121 int insn_idx, err, spec_len;
7123 if (sscanf(line1, "%d: (%*d) call unknown#195896080\n", &insn_idx) != 1)
7126 relo = find_relo_core(prog, insn_idx);
7138 insn_idx, spec_buf, spec_len >= sizeof(spec_buf) ? "..." : "");
7157 int insn_idx, map_idx;
7160 if (sscanf(line1, "%d: (%*d) call unknown#%d\n", &insn_idx, &map_idx) != 2)
7171 insn_idx, map->name);
7190 int insn_idx, ext_idx;
7193 if (sscanf(line1, "%d: (%*d) call unknown#%d\n", &insn_idx, &ext_idx) != 2)
7204 insn_idx, ext->name);
7277 true, kind, relo->insn_idx);
7282 relo->insn_idx);
7286 .insn_off = relo->insn_idx * 8,
9134 unsigned int moff, insn_idx;
9185 insn_idx = sym->st_value / BPF_INSN_SZ;
9202 prog = find_prog_by_sec_insn(obj, shdr_idx, insn_idx);