aboutsummaryrefslogtreecommitdiffstats
path: root/tools/lib/bpf/btf.c
diff options
context:
space:
mode:
authorMartin KaFai Lau <kafai@fb.com>2018-12-05 20:35:47 -0500
committerAlexei Starovoitov <ast@kernel.org>2018-12-05 21:48:40 -0500
commit84ecc1f98ca7ce28ede9bc5cc70a557fdfa09caa (patch)
treed1b34c120c66dd799428ca4e61bf8ed710f4ae3e /tools/lib/bpf/btf.c
parent555249df711b146a2898949ac80503be29fe7340 (diff)
bpf: Expect !info.func_info and insn_off name changes in test_btf/libbpf/bpftool
Similar to info.jited_*, info.func_info could be 0 if bpf_dump_raw_ok() == false. This patch makes changes to test_btf and bpftool to expect info.func_info could be 0. This patch also makes the needed changes for s/insn_offset/insn_off/. Signed-off-by: Martin KaFai Lau <kafai@fb.com> Acked-by: Yonghong Song <yhs@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/lib/bpf/btf.c')
-rw-r--r--tools/lib/bpf/btf.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c
index c2d641f3e16e..85d6446cf832 100644
--- a/tools/lib/bpf/btf.c
+++ b/tools/lib/bpf/btf.c
@@ -45,7 +45,7 @@ struct btf_ext {
45 45
46/* The minimum bpf_func_info checked by the loader */ 46/* The minimum bpf_func_info checked by the loader */
47struct bpf_func_info_min { 47struct bpf_func_info_min {
48 __u32 insn_offset; 48 __u32 insn_off;
49 __u32 type_id; 49 __u32 type_id;
50}; 50};
51 51
@@ -670,7 +670,7 @@ int btf_ext__reloc_init(struct btf *btf, struct btf_ext *btf_ext,
670 670
671 memcpy(data, sinfo->data, records_len); 671 memcpy(data, sinfo->data, records_len);
672 672
673 /* adjust the insn_offset, the data in .BTF.ext is 673 /* adjust the insn_off, the data in .BTF.ext is
674 * the actual byte offset, and the kernel expects 674 * the actual byte offset, and the kernel expects
675 * the offset in term of bpf_insn. 675 * the offset in term of bpf_insn.
676 * 676 *
@@ -681,7 +681,7 @@ int btf_ext__reloc_init(struct btf *btf, struct btf_ext *btf_ext,
681 struct bpf_func_info_min *record; 681 struct bpf_func_info_min *record;
682 682
683 record = data + i * record_size; 683 record = data + i * record_size;
684 record->insn_offset /= sizeof(struct bpf_insn); 684 record->insn_off /= sizeof(struct bpf_insn);
685 } 685 }
686 686
687 *func_info = data; 687 *func_info = data;
@@ -722,15 +722,15 @@ int btf_ext__reloc(struct btf *btf, struct btf_ext *btf_ext,
722 return -ENOMEM; 722 return -ENOMEM;
723 723
724 memcpy(data + existing_flen, sinfo->data, records_len); 724 memcpy(data + existing_flen, sinfo->data, records_len);
725 /* adjust insn_offset only, the rest data will be passed 725 /* adjust insn_off only, the rest data will be passed
726 * to the kernel. 726 * to the kernel.
727 */ 727 */
728 for (i = 0; i < sinfo->num_func_info; i++) { 728 for (i = 0; i < sinfo->num_func_info; i++) {
729 struct bpf_func_info_min *record; 729 struct bpf_func_info_min *record;
730 730
731 record = data + existing_flen + i * record_size; 731 record = data + existing_flen + i * record_size;
732 record->insn_offset = 732 record->insn_off =
733 record->insn_offset / sizeof(struct bpf_insn) + 733 record->insn_off / sizeof(struct bpf_insn) +
734 insns_cnt; 734 insns_cnt;
735 } 735 }
736 *func_info = data; 736 *func_info = data;