diff options
author | David S. Miller <davem@davemloft.net> | 2018-03-29 21:49:19 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-03-29 21:49:19 -0400 |
commit | 74957cbfb7eabe7639a22bd58f45a99bde42fd0c (patch) | |
tree | 1cd16acb999bea8de6e8b008c1a4819da851b6c3 | |
parent | d65026c6c62e7d9616c8ceb5a53b68bcdc050525 (diff) | |
parent | e8a4796ee2954db9f7e9b52e5fbc66ef876752f6 (diff) | |
download | linux-74957cbfb7eabe7639a22bd58f45a99bde42fd0c.tar.bz2 |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf
Daniel Borkman says:
====================
pull-request: bpf 2018-03-29
The following pull-request contains BPF updates for your *net* tree.
The main changes are:
1) Fix nfp to properly check max insn count while emitting
instructions in the JIT which was wrongly comparing bytes
against number of instructions before, from Jakub.
2) Fix for bpftool to avoid usage of hex numbers in JSON
output since JSON doesn't accept hex numbers with 0x
prefix, also from Jakub.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/netronome/nfp/bpf/jit.c | 6 | ||||
-rw-r--r-- | tools/bpf/bpftool/map.c | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/bpf/jit.c b/drivers/net/ethernet/netronome/nfp/bpf/jit.c index 56451edf01c2..ecd7c33baf3c 100644 --- a/drivers/net/ethernet/netronome/nfp/bpf/jit.c +++ b/drivers/net/ethernet/netronome/nfp/bpf/jit.c @@ -74,7 +74,9 @@ nfp_meta_has_prev(struct nfp_prog *nfp_prog, struct nfp_insn_meta *meta) static void nfp_prog_push(struct nfp_prog *nfp_prog, u64 insn) { - if (nfp_prog->__prog_alloc_len == nfp_prog->prog_len) { + if (nfp_prog->__prog_alloc_len / sizeof(u64) == nfp_prog->prog_len) { + pr_warn("instruction limit reached (%u NFP instructions)\n", + nfp_prog->prog_len); nfp_prog->error = -ENOSPC; return; } @@ -2463,6 +2465,8 @@ static int nfp_translate(struct nfp_prog *nfp_prog) err = cb(nfp_prog, meta); if (err) return err; + if (nfp_prog->error) + return nfp_prog->error; nfp_prog->n_translated++; } diff --git a/tools/bpf/bpftool/map.c b/tools/bpf/bpftool/map.c index f95fa67bb498..f509c86faede 100644 --- a/tools/bpf/bpftool/map.c +++ b/tools/bpf/bpftool/map.c @@ -428,7 +428,7 @@ static int show_map_close_json(int fd, struct bpf_map_info *info) jsonw_string_field(json_wtr, "name", info->name); jsonw_name(json_wtr, "flags"); - jsonw_printf(json_wtr, "%#x", info->map_flags); + jsonw_printf(json_wtr, "%d", info->map_flags); print_dev_json(info->ifindex, info->netns_dev, info->netns_ino); |