aboutsummaryrefslogtreecommitdiffstats
path: root/tools/bpf/bpftool/prog.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-11-28 15:53:48 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2018-11-28 15:53:48 -0500
commit60b548237fed4b4164bab13c994dd9615f6c4323 (patch)
tree84a10a314422af5a7cca05e2e70235d635346793 /tools/bpf/bpftool/prog.c
parentb26b2b24b1d8cc6e24d81872e6e18c0d76382a81 (diff)
parentd78a5ebd8b18d3809fd9d6bbaeb64d78a332204f (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: 1) ARM64 JIT fixes for subprog handling from Daniel Borkmann. 2) Various sparc64 JIT bug fixes (fused branch convergance, frame pointer usage detection logic, PSEODU call argument handling). 3) Fix to use BH locking in nf_conncount, from Taehee Yoo. 4) Fix race of TX skb freeing in ipheth driver, from Bernd Eckstein. 5) Handle return value of TX NAPI completion properly in lan743x driver, from Bryan Whitehead. 6) MAC filter deletion in i40e driver clears wrong state bit, from Lihong Yang. 7) Fix use after free in rionet driver, from Pan Bian. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (53 commits) s390/qeth: fix length check in SNMP processing net: hisilicon: remove unexpected free_netdev rapidio/rionet: do not free skb before reading its length i40e: fix kerneldoc for xsk methods ixgbe: recognize 1000BaseLX SFP modules as 1Gbps i40e: Fix deletion of MAC filters igb: fix uninitialized variables netfilter: nf_tables: deactivate expressions in rule replecement routine lan743x: Enable driver to work with LAN7431 tipc: fix lockdep warning during node delete lan743x: fix return value for lan743x_tx_napi_poll net: via: via-velocity: fix spelling mistake "alignement" -> "alignment" qed: fix spelling mistake "attnetion" -> "attention" net: thunderx: fix NULL pointer dereference in nic_remove sctp: increase sk_wmem_alloc when head->truesize is increased firestream: fix spelling mistake: "Inititing" -> "Initializing" net: phy: add workaround for issue where PHY driver doesn't bind to the device usbnet: ipheth: fix potential recvmsg bug and recvmsg bug 2 sparc: Adjust bpf JIT prologue for PSEUDO calls. bpf, doc: add entries of who looks over which jits ...
Diffstat (limited to 'tools/bpf/bpftool/prog.c')
-rw-r--r--tools/bpf/bpftool/prog.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c
index 5302ee282409..ccee180dfb76 100644
--- a/tools/bpf/bpftool/prog.c
+++ b/tools/bpf/bpftool/prog.c
@@ -357,10 +357,9 @@ static void print_prog_plain(struct bpf_prog_info *info, int fd)
357 if (!hash_empty(prog_table.table)) { 357 if (!hash_empty(prog_table.table)) {
358 struct pinned_obj *obj; 358 struct pinned_obj *obj;
359 359
360 printf("\n");
361 hash_for_each_possible(prog_table.table, obj, hash, info->id) { 360 hash_for_each_possible(prog_table.table, obj, hash, info->id) {
362 if (obj->id == info->id) 361 if (obj->id == info->id)
363 printf("\tpinned %s\n", obj->path); 362 printf("\n\tpinned %s", obj->path);
364 } 363 }
365 } 364 }
366 365
@@ -845,6 +844,7 @@ static int do_load(int argc, char **argv)
845 } 844 }
846 NEXT_ARG(); 845 NEXT_ARG();
847 } else if (is_prefix(*argv, "map")) { 846 } else if (is_prefix(*argv, "map")) {
847 void *new_map_replace;
848 char *endptr, *name; 848 char *endptr, *name;
849 int fd; 849 int fd;
850 850
@@ -878,12 +878,15 @@ static int do_load(int argc, char **argv)
878 if (fd < 0) 878 if (fd < 0)
879 goto err_free_reuse_maps; 879 goto err_free_reuse_maps;
880 880
881 map_replace = reallocarray(map_replace, old_map_fds + 1, 881 new_map_replace = reallocarray(map_replace,
882 sizeof(*map_replace)); 882 old_map_fds + 1,
883 if (!map_replace) { 883 sizeof(*map_replace));
884 if (!new_map_replace) {
884 p_err("mem alloc failed"); 885 p_err("mem alloc failed");
885 goto err_free_reuse_maps; 886 goto err_free_reuse_maps;
886 } 887 }
888 map_replace = new_map_replace;
889
887 map_replace[old_map_fds].idx = idx; 890 map_replace[old_map_fds].idx = idx;
888 map_replace[old_map_fds].name = name; 891 map_replace[old_map_fds].name = name;
889 map_replace[old_map_fds].fd = fd; 892 map_replace[old_map_fds].fd = fd;