libbpf: Move function is_ldimm64() earlier in libbpf.c

Move function is_ldimm64() close to the beginning of libbpf.c,
so it can be reused by later code and the next patch as well.
There is no functionality change.

Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210226204929.3885295-1-yhs@fb.com
This commit is contained in:
Yonghong Song 2021-02-26 12:49:29 -08:00 committed by Alexei Starovoitov
parent 06dcdcd4b9
commit b8f871fa32

View file

@ -574,6 +574,11 @@ static bool insn_is_subprog_call(const struct bpf_insn *insn)
insn->off == 0; insn->off == 0;
} }
static bool is_ldimm64(struct bpf_insn *insn)
{
return insn->code == (BPF_LD | BPF_IMM | BPF_DW);
}
static int static int
bpf_object__init_prog(struct bpf_object *obj, struct bpf_program *prog, bpf_object__init_prog(struct bpf_object *obj, struct bpf_program *prog,
const char *name, size_t sec_idx, const char *sec_name, const char *name, size_t sec_idx, const char *sec_name,
@ -3395,7 +3400,7 @@ static int bpf_program__record_reloc(struct bpf_program *prog,
return 0; return 0;
} }
if (insn->code != (BPF_LD | BPF_IMM | BPF_DW)) { if (!is_ldimm64(insn)) {
pr_warn("prog '%s': invalid relo against '%s' for insns[%d].code 0x%x\n", pr_warn("prog '%s': invalid relo against '%s' for insns[%d].code 0x%x\n",
prog->name, sym_name, insn_idx, insn->code); prog->name, sym_name, insn_idx, insn->code);
return -LIBBPF_ERRNO__RELOC; return -LIBBPF_ERRNO__RELOC;
@ -5566,11 +5571,6 @@ static void bpf_core_poison_insn(struct bpf_program *prog, int relo_idx,
insn->imm = 195896080; /* => 0xbad2310 => "bad relo" */ insn->imm = 195896080; /* => 0xbad2310 => "bad relo" */
} }
static bool is_ldimm64(struct bpf_insn *insn)
{
return insn->code == (BPF_LD | BPF_IMM | BPF_DW);
}
static int insn_bpf_size_to_bytes(struct bpf_insn *insn) static int insn_bpf_size_to_bytes(struct bpf_insn *insn)
{ {
switch (BPF_SIZE(insn->code)) { switch (BPF_SIZE(insn->code)) {