diff options
author | Daniel Borkmann <dborkman@redhat.com> | 2013-03-21 17:22:03 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-03-21 17:25:56 -0400 |
commit | 79617801ea0c0e6664cb497d4c1892c2ff407364 (patch) | |
tree | 5c1f4af6a7c3a6e13a33f054d7c58dee146f15e3 /arch/powerpc/net | |
parent | d5e07e69218fd9aa21d6c8c5ccc629d92bdb9b0f (diff) |
filter: bpf_jit_comp: refactor and unify BPF JIT image dump output
If bpf_jit_enable > 1, then we dump the emitted JIT compiled image
after creation. Currently, only SPARC and PowerPC has similar output
as in the reference implementation on x86_64. Make a small helper
function in order to reduce duplicated code and make the dump output
uniform across architectures x86_64, SPARC, PPC, ARM (e.g. on ARM
flen, pass and proglen are currently not shown, but would be
interesting to know as well), also for future BPF JIT implementations
on other archs.
Cc: Mircea Gherzan <mgherzan@gmail.com>
Cc: Matt Evans <matt@ozlabs.org>
Cc: Eric Dumazet <eric.dumazet@google.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/powerpc/net')
-rw-r--r-- | arch/powerpc/net/bpf_jit_comp.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c index e834f1ec23c8..c427ae36374a 100644 --- a/arch/powerpc/net/bpf_jit_comp.c +++ b/arch/powerpc/net/bpf_jit_comp.c | |||
@@ -671,16 +671,12 @@ void bpf_jit_compile(struct sk_filter *fp) | |||
671 | } | 671 | } |
672 | 672 | ||
673 | if (bpf_jit_enable > 1) | 673 | if (bpf_jit_enable > 1) |
674 | pr_info("flen=%d proglen=%u pass=%d image=%p\n", | 674 | /* Note that we output the base address of the code_base |
675 | flen, proglen, pass, image); | 675 | * rather than image, since opcodes are in code_base. |
676 | */ | ||
677 | bpf_jit_dump(flen, proglen, pass, code_base); | ||
676 | 678 | ||
677 | if (image) { | 679 | if (image) { |
678 | if (bpf_jit_enable > 1) | ||
679 | print_hex_dump(KERN_ERR, "JIT code: ", | ||
680 | DUMP_PREFIX_ADDRESS, | ||
681 | 16, 1, code_base, | ||
682 | proglen, false); | ||
683 | |||
684 | bpf_flush_icache(code_base, code_base + (proglen/4)); | 680 | bpf_flush_icache(code_base, code_base + (proglen/4)); |
685 | /* Function descriptor nastiness: Address + TOC */ | 681 | /* Function descriptor nastiness: Address + TOC */ |
686 | ((u64 *)image)[0] = (u64)code_base; | 682 | ((u64 *)image)[0] = (u64)code_base; |