diff options
Diffstat (limited to 'tools/bpf/bpftool/prog.c')
-rw-r--r-- | tools/bpf/bpftool/prog.c | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c index e549e329be82..950d11dd42ab 100644 --- a/tools/bpf/bpftool/prog.c +++ b/tools/bpf/bpftool/prog.c | |||
@@ -777,27 +777,25 @@ static int do_dump(int argc, char **argv) | |||
777 | 777 | ||
778 | if (json_output) | 778 | if (json_output) |
779 | jsonw_null(json_wtr); | 779 | jsonw_null(json_wtr); |
780 | } else { | 780 | } else if (member_len == &info.jited_prog_len) { |
781 | if (member_len == &info.jited_prog_len) { | 781 | const char *name = NULL; |
782 | const char *name = NULL; | 782 | |
783 | 783 | if (info.ifindex) { | |
784 | if (info.ifindex) { | 784 | name = ifindex_to_bfd_name_ns(info.ifindex, |
785 | name = ifindex_to_bfd_name_ns(info.ifindex, | 785 | info.netns_dev, |
786 | info.netns_dev, | 786 | info.netns_ino); |
787 | info.netns_ino); | 787 | if (!name) |
788 | if (!name) | 788 | goto err_free; |
789 | goto err_free; | ||
790 | } | ||
791 | |||
792 | disasm_print_insn(buf, *member_len, opcodes, name); | ||
793 | } else { | ||
794 | kernel_syms_load(&dd); | ||
795 | if (json_output) | ||
796 | dump_xlated_json(&dd, buf, *member_len, opcodes); | ||
797 | else | ||
798 | dump_xlated_plain(&dd, buf, *member_len, opcodes); | ||
799 | kernel_syms_destroy(&dd); | ||
800 | } | 789 | } |
790 | |||
791 | disasm_print_insn(buf, *member_len, opcodes, name); | ||
792 | } else { | ||
793 | kernel_syms_load(&dd); | ||
794 | if (json_output) | ||
795 | dump_xlated_json(&dd, buf, *member_len, opcodes); | ||
796 | else | ||
797 | dump_xlated_plain(&dd, buf, *member_len, opcodes); | ||
798 | kernel_syms_destroy(&dd); | ||
801 | } | 799 | } |
802 | 800 | ||
803 | free(buf); | 801 | free(buf); |