Skip to contentSkip to conversation

Patch "libbpf: prefer global symbols as bpf program name source" has been added to the 4.15-stable tree

PATCH [email protected] 1 participant 1 message Mar 22, 2018

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

libbpf: prefer global symbols as bpf program name source

to the 4.15-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
libbpf-prefer-global-symbols-as-bpf-program-name-source.patch
and it can be found in the queue-4.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From foo@baz Thu Mar 22 14:03:39 CET 2018

From: Roman Gushchin <[email protected]>
Date: Wed, 13 Dec 2017 15:18:52 +0000
Subject: libbpf: prefer global symbols as bpf program name source

From: Roman Gushchin <[email protected]>

[ Upstream commit fe4d44b23f6b38194a92c6b8a50d921a071c4db4 ]

Libbpf picks the name of the first symbol in the corresponding elf section to use as a program name. But without taking symbol's scope into account it may end's up with some local label as a program name. E.g.:

$ bpftool prog
1: type 15  name LBB0_10    tag 0390a5136ba23f5c
	loaded_at Dec 07/17:22  uid 0
	xlated 456B  not jited  memlock 4096B

Fix this by preferring global symbols as program name.

For instance:

$ bpftool prog
1: type 15  name bpf_prog1  tag 0390a5136ba23f5c
	loaded_at Dec 07/17:26  uid 0
	xlated 456B  not jited  memlock 4096B
Cc Alexei Starovoitov <[email protected]>
Cc Daniel Borkmann <[email protected]>
Cc Jakub Kicinski <[email protected]>
Cc Martin KaFai Lau <[email protected]>
Cc Quentin Monnet <[email protected]>
Cc David Ahern <[email protected]>
---
 tools/lib/bpf/libbpf.c |    2 ++
 1 file changed, 2 insertions(+)
tools/lib/bpf/libbpf.c +2 -0
@@ -387,6 +387,8 @@ bpf_object__init_prog_names(struct bpf_o
 				continue;
 			if (sym.st_shndx != prog->idx)
 				continue;
+			if (GELF_ST_BIND(sym.st_info) != STB_GLOBAL)
+				continue;
 
 			name = elf_strptr(obj->efile.elf,
 					  obj->efile.strtabidx,

Patches currently in stable-queue which might be from [email protected] are

queue-4.15/libbpf-prefer-global-symbols-as-bpf-program-name-source.patch queue-4.15/bpf-cgroup-fix-a-verification-error-for-a-cgroup_device-type-prog.patch