linux/tools
Andrii Nakryiko 1f8e2bcb2c libbpf: Refactor relocation handling
Relocation handling code is convoluted and unnecessarily deeply nested. Split
out per-relocation logic into separate function. Also refactor the logic to be
more a sequence of per-relocation type checks and processing steps, making it
simpler to follow control flow. This makes it easier to further extends it to
new kinds of relocations (e.g., support for extern variables).

This patch also makes relocation's section verification more robust.
Previously relocations against not yet supported externs were silently ignored
because of obj->efile.text_shndx was zero, when all BPF programs had custom
section names and there was no .text section. Also, invalid LDIMM64 relocations
against non-map sections were passed through, if they were pointing to a .text
section (or 0, which is invalid section). All these bugs are fixed within this
refactoring and checks are made more appropriate for each type of relocation.

Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20191121070743.1309473-3-andriin@fb.com
2019-11-24 16:58:45 -08:00
..
accounting
arch tools headers kvm: Sync kvm headers with the kernel sources 2019-10-15 12:30:08 -03:00
bpf tools, bpf: Fix build for 'make -s tools/bpf O=<dir>' 2019-11-24 16:58:45 -08:00
build tools build: Add capability-related feature detection 2019-08-12 17:14:14 -03:00
cgroup iocost_monitor: Report debt 2019-09-10 12:31:39 -06:00
debugging
firewire
firmware Driver Core and debugfs changes for 5.3-rc1 2019-07-12 12:24:03 -07:00
gpio tools: gpio: Correctly add make dependencies for gpio_utils 2019-11-13 13:46:04 +01:00
hv - First round of vmbus hibernation support from Dexuan Cui. 2019-09-24 12:36:31 -07:00
iio tools: iio: add .gitignore 2019-08-18 20:45:57 +01:00
include bpf: Add mmap() support for BPF_MAP_TYPE_ARRAY 2019-11-18 11:41:59 +01:00
io_uring
kvm/kvm_stat
laptop
leds leds: core: Add support for composing LED class device names 2019-07-25 20:07:52 +02:00
lib libbpf: Refactor relocation handling 2019-11-24 16:58:45 -08:00
memory-model tools/memory-model: Update the informal documentation 2019-08-09 10:28:57 -07:00
nfsd
objtool KVM: x86: Check kvm_rebooting in kvm_spurious_fault() 2019-09-25 15:23:33 +02:00
pci pci-v5.3-changes 2019-07-15 20:44:49 -07:00
pcmcia
perf Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-11-10 11:55:53 -08:00
power platform-drivers-x86 for v5.4-2 2019-09-24 12:39:40 -07:00
scripts perf build: Do not use -Wshadow on gcc < 4.8 2019-07-23 09:04:54 -03:00
spi
testing selftests/bpf: Ensure no DWARF relocations for BPF object files 2019-11-24 16:58:45 -08:00
thermal/tmon
time
usb usbip: tools: Fix read_usb_vudc_device() error path handling 2019-10-28 17:51:06 +01:00
virtio tools/virtio: xen stub 2019-10-13 09:38:27 -04:00
vm tools/vm/slabinfo: add sorting info to help menu 2019-07-12 11:05:46 -07:00
wmi
Makefile tools: Keep list of tools in alphabetical order 2019-08-14 10:59:59 -03:00