/kernel/linux/linux-6.6/tools/lib/bpf/ |
H A D | gen_loader.c | 565 struct ksym_relo_desc *relo; in bpf_gen__record_extern() local 567 relo = libbpf_reallocarray(gen->relos, gen->relo_cnt + 1, sizeof(*relo)); in bpf_gen__record_extern() 568 if (!relo) { in bpf_gen__record_extern() 572 gen->relos = relo; in bpf_gen__record_extern() 573 relo += gen->relo_cnt; in bpf_gen__record_extern() 574 relo->name = name; in bpf_gen__record_extern() 575 relo->is_weak = is_weak; in bpf_gen__record_extern() 576 relo->is_typeless = is_typeless; in bpf_gen__record_extern() 577 relo in bpf_gen__record_extern() 584 get_ksym_desc(struct bpf_gen *gen, struct ksym_relo_desc *relo) get_ksym_desc() argument 616 emit_bpf_find_by_name_kind(struct bpf_gen *gen, struct ksym_relo_desc *relo) emit_bpf_find_by_name_kind() argument 635 emit_bpf_kallsyms_lookup_name(struct bpf_gen *gen, struct ksym_relo_desc *relo) emit_bpf_kallsyms_lookup_name() argument 664 emit_relo_kfunc_btf(struct bpf_gen *gen, struct ksym_relo_desc *relo, int insn) emit_relo_kfunc_btf() argument 735 emit_ksym_relo_log(struct bpf_gen *gen, struct ksym_relo_desc *relo, int ref) emit_ksym_relo_log() argument 754 emit_relo_ksym_typeless(struct bpf_gen *gen, struct ksym_relo_desc *relo, int insn) emit_relo_ksym_typeless() argument 801 emit_relo_ksym_btf(struct bpf_gen *gen, struct ksym_relo_desc *relo, int insn) emit_relo_ksym_btf() argument 867 emit_relo(struct bpf_gen *gen, struct ksym_relo_desc *relo, int insns) emit_relo() argument [all...] |
H A D | relo_core.c | 264 const struct bpf_core_relo *relo, in bpf_core_parse_spec() 274 spec_str = btf__name_by_offset(btf, relo->access_str_off); in bpf_core_parse_spec() 280 spec->root_type_id = relo->type_id; in bpf_core_parse_spec() 281 spec->relo_kind = relo->kind; in bpf_core_parse_spec() 284 if (core_relo_is_type_based(relo->kind)) { in bpf_core_parse_spec() 305 t = skip_mods_and_typedefs(btf, relo->type_id, &id); in bpf_core_parse_spec() 315 if (core_relo_is_enumval_based(relo->kind)) { in bpf_core_parse_spec() 326 if (!core_relo_is_field_based(relo->kind)) in bpf_core_parse_spec() 386 pr_warn("prog '%s': relo for [%u] %s (at idx %d) captures type [%d] of unexpected kind %s\n", in bpf_core_parse_spec() 387 prog_name, relo in bpf_core_parse_spec() 263 bpf_core_parse_spec(const char *prog_name, const struct btf *btf, const struct bpf_core_relo *relo, struct bpf_core_spec *spec) bpf_core_parse_spec() argument 678 bpf_core_calc_field_relo(const char *prog_name, const struct bpf_core_relo *relo, const struct bpf_core_spec *spec, __u64 *val, __u32 *field_sz, __u32 *type_id, bool *validate) bpf_core_calc_field_relo() argument 803 bpf_core_calc_type_relo(const struct bpf_core_relo *relo, const struct bpf_core_spec *spec, __u64 *val, bool *validate) bpf_core_calc_type_relo() argument 847 bpf_core_calc_enumval_relo(const struct bpf_core_relo *relo, const struct bpf_core_spec *spec, __u64 *val) bpf_core_calc_enumval_relo() argument 879 bpf_core_calc_relo(const char *prog_name, const struct bpf_core_relo *relo, int relo_idx, const struct bpf_core_spec *local_spec, const struct bpf_core_spec *targ_spec, struct bpf_core_relo_res *res) bpf_core_calc_relo() argument 1024 bpf_core_patch_insn(const char *prog_name, struct bpf_insn *insn, int insn_idx, const struct bpf_core_relo *relo, int relo_idx, const struct bpf_core_relo_res *res) bpf_core_patch_insn() argument 1280 bpf_core_calc_relo_insn(const char *prog_name, const struct bpf_core_relo *relo, int relo_idx, const struct btf *local_btf, struct bpf_core_cand_list *cands, struct bpf_core_spec *specs_scratch, struct bpf_core_relo_res *targ_res) bpf_core_calc_relo_insn() argument [all...] |
H A D | relo_core.h | 83 const struct bpf_core_relo *relo, int relo_idx, 90 int insn_idx, const struct bpf_core_relo *relo, 94 const struct bpf_core_relo *relo,
|
H A D | libbpf.c | 3527 /* Only do relo for section with exec instructions */ in bpf_object__elf_collect() 3532 pr_info("elf: skipping relo section(%d) %s for section(%d) %s\n", in bpf_object__elf_collect() 4062 pr_warn("prog '%s': invalid relo against '%s' for insns[%d].code 0x%x\n", in bpf_program__record_reloc() 4078 pr_warn("prog '%s': extern relo failed to find extern for '%s' (%d)\n", in bpf_program__record_reloc() 4102 pr_warn("prog '%s': bad call relo against '%s' in section '%s'\n", in bpf_program__record_reloc() 4107 pr_warn("prog '%s': bad call relo against '%s' at offset %zu\n", in bpf_program__record_reloc() 4118 pr_warn("prog '%s': invalid relo against '%s' in special section 0x%x; forgot to initialize global var?..\n", in bpf_program__record_reloc() 4129 pr_warn("prog '%s': bad subprog addr relo against '%s' at offset %zu+%d\n", in bpf_program__record_reloc() 4146 pr_warn("prog '%s': bad map relo against '%s' in section '%s'\n", in bpf_program__record_reloc() 4162 pr_warn("prog '%s': map relo faile in bpf_program__record_reloc() 5708 struct reloc_desc *relos, *relo; record_relo_core() local 5725 struct reloc_desc *relo; find_relo_core() local 5739 bpf_core_resolve_relo(struct bpf_program *prog, const struct bpf_core_relo *relo, int relo_idx, const struct btf *local_btf, struct hashmap *cand_cache, struct bpf_core_relo_res *targ_res) bpf_core_resolve_relo() argument 5966 struct reloc_desc *relo = &prog->reloc_desc[i]; bpf_object__relocate_data() local 6199 const struct reloc_desc *relo = elem; cmp_relo_by_insn_idx() local 6250 struct reloc_desc *relo; bpf_object__reloc_code() local 6545 struct reloc_desc *relo = &prog->reloc_desc[j]; bpf_object__relocate() local 7118 const struct bpf_core_relo *relo; fixup_log_failed_core_relo() local 7265 struct reloc_desc *relo = &prog->reloc_desc[i]; bpf_program_record_relos() local [all...] |
H A D | linker.c | 840 Elf64_Rel *relo; in linker_sanity_check_elf_relos() local 850 pr_warn("ELF relo section #%zu points to invalid SYMTAB section #%zu in %s\n", in linker_sanity_check_elf_relos() 857 pr_warn("ELF relo section #%zu points to missing section #%zu in %s\n", in linker_sanity_check_elf_relos() 866 pr_warn("ELF relo section #%zu name has invalid name in %s\n", in linker_sanity_check_elf_relos() 877 pr_warn("ELF relo section #%zu points to invalid section #%zu in %s\n", in linker_sanity_check_elf_relos() 884 relo = sec->data->d_buf; in linker_sanity_check_elf_relos() 886 for (i = 0; i < n; i++, relo++) { in linker_sanity_check_elf_relos() 887 size_t sym_idx = ELF64_R_SYM(relo->r_info); in linker_sanity_check_elf_relos() 888 size_t sym_type = ELF64_R_TYPE(relo->r_info); in linker_sanity_check_elf_relos() 892 pr_warn("ELF relo # in linker_sanity_check_elf_relos() [all...] |
/kernel/linux/linux-5.10/tools/lib/bpf/ |
H A D | libbpf.c | 2903 /* Only do relo for section with exec instructions */ in bpf_object__elf_collect() 2907 pr_info("elf: skipping relo section(%d) %s for section(%d) %s\n", in bpf_object__elf_collect() 3359 pr_warn("prog '%s': bad call relo against '%s' in section '%s'\n", in bpf_program__record_reloc() 3364 pr_warn("prog '%s': bad call relo against '%s' at offset %zu\n", in bpf_program__record_reloc() 3375 pr_warn("prog '%s': invalid relo against '%s' for insns[%d].code 0x%x\n", in bpf_program__record_reloc() 3391 pr_warn("prog '%s': extern relo failed to find extern for '%s' (%d)\n", in bpf_program__record_reloc() 3404 pr_warn("prog '%s': invalid relo against '%s' in special section 0x%x; forgot to initialize global var?..\n", in bpf_program__record_reloc() 3415 pr_warn("prog '%s': bad map relo against '%s' in section '%s'\n", in bpf_program__record_reloc() 3431 pr_warn("prog '%s': map relo failed to find map for section '%s', off %zu\n", in bpf_program__record_reloc() 3444 pr_warn("prog '%s': bad data relo agains in bpf_program__record_reloc() 5105 bpf_core_calc_field_relo(const struct bpf_program *prog, const struct bpf_core_relo *relo, const struct bpf_core_spec *spec, __u32 *val, __u32 *field_sz, __u32 *type_id, bool *validate) bpf_core_calc_field_relo() argument 5231 bpf_core_calc_type_relo(const struct bpf_core_relo *relo, const struct bpf_core_spec *spec, __u32 *val) bpf_core_calc_type_relo() argument 5265 bpf_core_calc_enumval_relo(const struct bpf_core_relo *relo, const struct bpf_core_spec *spec, __u32 *val) bpf_core_calc_enumval_relo() argument 5321 bpf_core_calc_relo(const struct bpf_program *prog, const struct bpf_core_relo *relo, int relo_idx, const struct bpf_core_spec *local_spec, const struct bpf_core_spec *targ_spec, struct bpf_core_relo_res *res) bpf_core_calc_relo() argument 5471 bpf_core_patch_insn(struct bpf_program *prog, const struct bpf_core_relo *relo, int relo_idx, const struct bpf_core_relo_res *res) bpf_core_patch_insn() argument 5725 bpf_core_apply_relo(struct bpf_program *prog, const struct bpf_core_relo *relo, int relo_idx, const struct btf *local_btf, const struct btf *targ_btf, struct hashmap *cand_cache) bpf_core_apply_relo() argument 6009 struct reloc_desc *relo = &prog->reloc_desc[i]; bpf_object__relocate_data() local 6199 const struct reloc_desc *relo = elem; cmp_relo_by_insn_idx() local 6219 struct reloc_desc *relo; bpf_object__reloc_code() local [all...] |
/kernel/linux/linux-6.6/tools/bpf/bpftool/ |
H A D | gen.c | 2044 const struct bpf_core_relo *relo; in btfgen_record_obj() local 2081 for_each_btf_ext_rec(seg, sec, relo_idx, relo) { in btfgen_record_obj() 2087 if (relo->kind != BPF_CORE_TYPE_ID_LOCAL && in btfgen_record_obj() 2088 !hashmap__find(cand_cache, relo->type_id, &cands)) { in btfgen_record_obj() 2089 cands = btfgen_find_cands(btf, info->src_btf, relo->type_id); in btfgen_record_obj() 2095 err = hashmap__set(cand_cache, relo->type_id, cands, in btfgen_record_obj() 2101 err = bpf_core_calc_relo_insn(sec_name, relo, relo_idx, btf, cands, in btfgen_record_obj()
|
/kernel/linux/linux-5.10/arch/arc/kernel/ |
H A D | entry.S | 302 j @schedule ; BTST+Bnz causes relo error in link
|
/kernel/linux/linux-5.10/drivers/net/ethernet/netronome/nfp/bpf/ |
H A D | jit.c | 163 enum nfp_relo_type relo) in emit_br_relo() 176 FIELD_PREP(OP_RELO_TYPE, relo); in emit_br_relo() 209 u8 defer, bool set, enum nfp_relo_type relo) in emit_br_bit_relo() 230 FIELD_PREP(OP_RELO_TYPE, relo); in emit_br_bit_relo() 634 enum nfp_relo_type relo) in wrp_immed_relo() 644 FIELD_PREP(OP_RELO_TYPE, relo); in wrp_immed_relo() 162 emit_br_relo(struct nfp_prog *nfp_prog, enum br_mask mask, u16 addr, u8 defer, enum nfp_relo_type relo) emit_br_relo() argument 208 emit_br_bit_relo(struct nfp_prog *nfp_prog, swreg src, u8 bit, u16 addr, u8 defer, bool set, enum nfp_relo_type relo) emit_br_bit_relo() argument 633 wrp_immed_relo(struct nfp_prog *nfp_prog, swreg dst, u32 imm, enum nfp_relo_type relo) wrp_immed_relo() argument
|
/kernel/linux/linux-6.6/drivers/net/ethernet/netronome/nfp/bpf/ |
H A D | jit.c | 163 enum nfp_relo_type relo) in emit_br_relo() 176 FIELD_PREP(OP_RELO_TYPE, relo); in emit_br_relo() 209 u8 defer, bool set, enum nfp_relo_type relo) in emit_br_bit_relo() 230 FIELD_PREP(OP_RELO_TYPE, relo); in emit_br_bit_relo() 634 enum nfp_relo_type relo) in wrp_immed_relo() 644 FIELD_PREP(OP_RELO_TYPE, relo); in wrp_immed_relo() 162 emit_br_relo(struct nfp_prog *nfp_prog, enum br_mask mask, u16 addr, u8 defer, enum nfp_relo_type relo) emit_br_relo() argument 208 emit_br_bit_relo(struct nfp_prog *nfp_prog, swreg src, u8 bit, u16 addr, u8 defer, bool set, enum nfp_relo_type relo) emit_br_bit_relo() argument 633 wrp_immed_relo(struct nfp_prog *nfp_prog, swreg dst, u32 imm, enum nfp_relo_type relo) wrp_immed_relo() argument
|
/kernel/linux/linux-6.6/kernel/bpf/ |
H A D | btf.c | 8417 int bpf_core_apply(struct bpf_core_ctx *ctx, const struct bpf_core_relo *relo, in bpf_core_apply() argument 8420 bool need_cands = relo->kind != BPF_CORE_TYPE_ID_LOCAL; in bpf_core_apply() 8438 cc = bpf_core_find_cands(ctx, relo->type_id); in bpf_core_apply() 8441 relo->type_id); in bpf_core_apply() 8467 err = bpf_core_calc_relo_insn((void *)ctx->log, relo, relo_idx, ctx->btf, &cands, specs, in bpf_core_apply() 8472 err = bpf_core_patch_insn((void *)ctx->log, insn, relo->insn_off / 8, relo, relo_idx, in bpf_core_apply()
|
/kernel/linux/linux-6.6/include/linux/ |
H A D | bpf.h | 2458 int bpf_core_apply(struct bpf_core_ctx *ctx, const struct bpf_core_relo *relo,
|