]> git.baikalelectronics.ru Git - kernel.git/commit
tools: libbpf: restore the ability to load programs from .text section
authorJakub Kicinski <jakub.kicinski@netronome.com>
Thu, 28 Jun 2018 21:41:38 +0000 (14:41 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Sat, 30 Jun 2018 23:01:50 +0000 (01:01 +0200)
commit8becdb195fd499302f79e872eb1a7d26227bd362
tree967999fb046e005b1026f0280f8be0b7f6190f6a
parent282c09fce5eab17c39054bf837cd02de42bf8a4d
tools: libbpf: restore the ability to load programs from .text section

libbpf used to be able to load programs from the default section
called '.text'.  It's not very common to leave sections unnamed,
but if it happens libbpf will fail to load the programs reporting
-EINVAL from the kernel.  The -EINVAL comes from bpf_obj_name_cpy()
because since 6978ac42973a ("libbpf: add support for bpf_call")
libbpf does not resolve program names for programs in '.text',
defaulting to '.text'.  '.text', however, does not pass the
(isalnum(*src) || *src == '_') check in bpf_obj_name_cpy().

With few extra lines of code we can limit the pseudo call
assumptions only to objects which actually contain code relocations.

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
tools/lib/bpf/libbpf.c