aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2018-03-29 21:49:19 -0400
committerDavid S. Miller <davem@davemloft.net>2018-03-29 21:49:19 -0400
commit74957cbfb7eabe7639a22bd58f45a99bde42fd0c (patch)
tree1cd16acb999bea8de6e8b008c1a4819da851b6c3
parentd65026c6c62e7d9616c8ceb5a53b68bcdc050525 (diff)
parente8a4796ee2954db9f7e9b52e5fbc66ef876752f6 (diff)
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.c6
-rw-r--r--tools/bpf/bpftool/map.c2
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)
74 74
75static void nfp_prog_push(struct nfp_prog *nfp_prog, u64 insn) 75static void nfp_prog_push(struct nfp_prog *nfp_prog, u64 insn)
76{ 76{
77 if (nfp_prog->__prog_alloc_len == nfp_prog->prog_len) { 77 if (nfp_prog->__prog_alloc_len / sizeof(u64) == nfp_prog->prog_len) {
78 pr_warn("instruction limit reached (%u NFP instructions)\n",
79 nfp_prog->prog_len);
78 nfp_prog->error = -ENOSPC; 80 nfp_prog->error = -ENOSPC;
79 return; 81 return;
80 } 82 }
@@ -2463,6 +2465,8 @@ static int nfp_translate(struct nfp_prog *nfp_prog)
2463 err = cb(nfp_prog, meta); 2465 err = cb(nfp_prog, meta);
2464 if (err) 2466 if (err)
2465 return err; 2467 return err;
2468 if (nfp_prog->error)
2469 return nfp_prog->error;
2466 2470
2467 nfp_prog->n_translated++; 2471 nfp_prog->n_translated++;
2468 } 2472 }
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)
428 jsonw_string_field(json_wtr, "name", info->name); 428 jsonw_string_field(json_wtr, "name", info->name);
429 429
430 jsonw_name(json_wtr, "flags"); 430 jsonw_name(json_wtr, "flags");
431 jsonw_printf(json_wtr, "%#x", info->map_flags); 431 jsonw_printf(json_wtr, "%d", info->map_flags);
432 432
433 print_dev_json(info->ifindex, info->netns_dev, info->netns_ino); 433 print_dev_json(info->ifindex, info->netns_dev, info->netns_ino);
434 434