android_kernel_sony_sdm845/arch/powerpc/kernel
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Fangrui Song 41cc72a0d5 BACKPORT: bpf: Support llvm-objcopy for vmlinux BTF
commit 90ceddcb495008ac8ba7a3dce297841efcd7d584 upstream.

Simplify gen_btf logic to make it work with llvm-objcopy. The existing
'file format' and 'architecture' parsing logic is brittle and does not
work with llvm-objcopy/llvm-objdump.

'file format' output of llvm-objdump>=11 will match GNU objdump, but
'architecture' (bfdarch) may not.

.BTF in .tmp_vmlinux.btf is non-SHF_ALLOC. Add the SHF_ALLOC flag
because it is part of vmlinux image used for introspection. C code
can reference the section via linker script defined __start_BTF and
__stop_BTF. This fixes a small problem that previous .BTF had the
SHF_WRITE flag (objcopy -I binary -O elf* synthesized .data).

Additionally, `objcopy -I binary` synthesized symbols
_binary__btf_vmlinux_bin_start and _binary__btf_vmlinux_bin_stop (not
used elsewhere) are replaced with more commonplace __start_BTF and
__stop_BTF.

Add 2>/dev/null because GNU objcopy (but not llvm-objcopy) warns
"empty loadable segment detected at vaddr=0xffffffff81000000, is this intentional?"

We use a dd command to change the e_type field in the ELF header from
ET_EXEC to ET_REL so that lld will accept .btf.vmlinux.bin.o.  Accepting
ET_EXEC as an input file is an extremely rare GNU ld feature that lld
does not intend to support, because this is error-prone.

The output section description .BTF in include/asm-generic/vmlinux.lds.h
avoids potential subtle orphan section placement issues and suppresses
--orphan-handling=warn warnings.

Fixes: df786c9b9476 ("bpf: Force .BTF section start to zero when dumping from vmlinux")
Fixes: cb0cc635c7a9 ("powerpc: Include .BTF section")
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Change-Id: I145b50cfe3e0e1e034fb750cf55642905382a06c
Signed-off-by: Fangrui Song <maskray@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Tested-by: Stanislav Fomichev <sdf@google.com>
Tested-by: Andrii Nakryiko <andriin@fb.com>
Reviewed-by: Stanislav Fomichev <sdf@google.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
Link: https://github.com/ClangBuiltLinux/linux/issues/871
Link: https://lore.kernel.org/bpf/20200318222746.173648-1-maskray@google.com
Signed-off-by: Maria Teguiani <teguiani@google.com>
Tested-by: Matthias Maennich <maennich@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sorayukii <sorayukii69@gmail.com>
2026-05-15 17:58:11 +07:00
..
vdso32 powerpc: Fix vDSO clock_getres() 2019-12-21 10:42:17 +01:00
vdso64 powerpc: Fix vDSO clock_getres() 2019-12-21 10:42:17 +01:00
.gitignore
align.c powerpc: Fix DAR reporting when alignment handler faults 2017-09-27 14:39:21 +02:00
asm-offsets.c powerpc: Fix vDSO clock_getres() 2019-12-21 10:42:17 +01:00
audit.c
btext.c powerpc/btext: add missing of_node_put 2022-01-27 08:47:39 +01:00
cacheinfo.c powerpc/cacheinfo: add cacheinfo_teardown, cacheinfo_rebuild 2020-01-29 10:24:26 +01:00
cacheinfo.h powerpc/cacheinfo: add cacheinfo_teardown, cacheinfo_rebuild 2020-01-29 10:24:26 +01:00
compat_audit.c
cpu_setup_6xx.S powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
cpu_setup_44x.S
cpu_setup_fsl_booke.S powerpc/cache: add cache flush operation for various e500 2016-03-04 23:44:51 -06:00
cpu_setup_pa6t.S
cpu_setup_power.S powerpc/64s: Clear PCR on boot 2018-06-06 16:44:32 +02:00
cpu_setup_ppc970.S
cputable.c powerpc: fix hardware PMU exception bug on PowerVM compatibility mode systems 2020-03-11 07:53:14 +01:00
crash.c powerpc/crash: Rearrange loop condition to avoid out of bounds array access 2016-07-14 20:26:22 +10:00
crash_dump.c
dbell.c powerpc/powernv: Fixes for hypervisor doorbell handling 2015-03-20 14:51:53 +11:00
dma-iommu.c powerpc/dma: Fix dma_map_ops::get_required_mask 2020-09-23 08:46:16 +02:00
dma-swiotlb.c powerpc/iommu: Support "hybrid" iommu/direct DMA ops for coherent_mask < dma_mask 2015-07-13 10:10:55 +10:00
dma.c dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
eeh.c powerpc/eeh: Fix EEH handling for hugepages in ioremap space. 2021-05-22 10:40:19 +02:00
eeh_cache.c powerpc/eeh: Fix pr_debug()s in eeh_cache.c 2016-07-08 22:09:50 +10:00
eeh_dev.c powerpc/pci: Delay populating pdn 2016-06-21 15:30:56 +10:00
eeh_driver.c powerpc/powernv/iov: Ensure the pdn for VFs always contains a valid PE number 2020-02-28 15:42:18 +01:00
eeh_event.c powerpc: sparse: static-ify some things 2016-04-12 21:05:18 +10:00
eeh_pe.c powerpc/eeh: Fix use of EEH_PE_KEEP on wrong field 2019-11-28 18:28:18 +01:00
eeh_sysfs.c
entry_32.S powerpc/fsl: Sanitize the syscall table for NXP PowerPC 32 bit platforms 2019-04-17 08:36:41 +02:00
entry_64.S powerpc/book3s64: Fix link stack flush on context switch 2019-11-28 18:29:06 +01:00
epapr_hcalls.S ppc: move exports to definitions 2016-08-07 23:50:09 -04:00
epapr_paravirt.c
exceptions-64e.S powerpc/fsl: Fix the flush of branch predictor. 2019-04-17 08:36:43 +02:00
exceptions-64s.S powerpc/64s: flush L1D after user accesses 2020-11-22 09:58:14 +01:00
fadump.c powerpc/fadump: Return error when fadump registration fails 2018-10-13 09:18:57 +02:00
firmware.c
fpu.S Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-10-14 14:26:58 -07:00
fsl_booke_entry_mapping.S powerpc/fsl: Force coherent memory on e500mc derivatives 2015-08-07 23:00:01 -05:00
ftrace.c ftrace: Add return address pointer to ftrace_ret_stack 2016-08-24 12:15:14 +02:00
head_8xx.S powerpc/8xx: Always fault when _PAGE_ACCESSED is not set 2020-11-22 09:58:14 +01:00
head_32.S Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-10-14 14:26:58 -07:00
head_40x.S ppc: move exports to definitions 2016-08-07 23:50:09 -04:00
head_44x.S ppc: move exports to definitions 2016-08-07 23:50:09 -04:00
head_64.S powerpc/64e: Convert cmpi to cmpwi in head_64.S 2017-01-09 08:32:25 +01:00
head_booke.h powerpc/fsl: Fixed warning: orphan section `__btb_flush_fixup' 2019-04-17 08:36:43 +02:00
head_fsl_booke.S powerpc/fsl: Flush the branch predictor at each kernel entry (32 bit) 2019-04-17 08:36:43 +02:00
hw_breakpoint.c powerpc/ptrace: Fix enforcement of DAWR constraints 2018-07-03 11:23:08 +02:00
ibmebus.c powerpc/ibmebus: Fix device reference leaks in sysfs interface 2017-01-19 20:18:08 +01:00
idle.c powerpc/idle: Fix return value of __setup() handler 2022-06-14 16:52:33 +02:00
idle_6xx.S
idle_book3e.S
idle_book3s.S powerpc/64s: Simple RFI macro conversions 2018-02-25 11:05:50 +01:00
idle_e500.S powerpc/e500mc: Remove dead L2 flushing code in idle_e500.S 2015-06-02 21:37:19 -05:00
idle_power4.S
io-workarounds.c powerpc/mm: Differentiate between hugetlb and THP during page walk 2015-10-12 15:30:09 +11:00
io.c
iomap.c powerpc: add io{read,write}64 accessors 2016-05-31 16:41:52 +08:00
iommu.c powerpc/iommu: Annotate nested lock for lockdep 2021-05-22 10:40:30 +02:00
irq.c powerpc/irq: fix stack overflow verification 2020-01-04 13:40:24 +01:00
isa-bridge.c powerpc/mm: Use a helper for finding pte bits mapping I/O area 2016-05-01 18:32:32 +10:00
jump_label.c jump_label: Rename JUMP_LABEL_{EN,DIS}ABLE to JUMP_LABEL_{JMP,NOP} 2015-08-03 11:34:12 +02:00
kgdb.c powerpc: Fix kgdb on little endian ppc64le 2016-02-18 00:03:26 +11:00
kprobes.c powerpc/kprobes: Pause function_graph tracing during jprobes handling 2017-06-29 13:00:29 +02:00
kvm.c powerpc: Remove redundant breaks 2015-08-06 15:10:20 +10:00
kvm_emul.S
l2cr_6xx.S
legacy_serial.c powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
machine_kexec.c powerpc/crashkernel: Take "mem=" option into account 2020-06-30 15:38:22 -04:00
machine_kexec_32.c
machine_kexec_64.c powerpc/64/kexec: Remove BookE special default_machine_kexec_prepare() 2016-09-23 07:54:18 +10:00
Makefile powerpc/32: Fix boot failure with GCC latent entropy plugin 2022-02-08 18:15:27 +01:00
mce.c powerpc/book3s/mce: Move add_taint() later in virtual mode 2017-05-25 15:44:43 +02:00
mce_power.c powerpc/mm/radix: Fix CONFIG_PPC_MMU_STD_64 typo 2016-05-11 21:53:59 +10:00
misc.S ppc: move exports to definitions 2016-08-07 23:50:09 -04:00
misc_32.S powerpc: Fix build warning on 32-bit PPC 2017-01-15 13:42:56 +01:00
misc_64.S powerpc/64: Fix flush_(d|i)cache_range() called from modules 2017-04-12 12:41:13 +02:00
module.c powerpc/64: Add CONFIG_PPC_BARRIER_NOSPEC 2019-04-17 08:36:41 +02:00
module_32.c powerpc/module: Only try to generate the ftrace_caller() stub once 2016-03-07 14:53:53 +11:00
module_64.c powerpc/module64: Fix comment in R_PPC64_ENTRY handling 2021-09-22 11:42:57 +02:00
msi.c powerpc/msi: Fix NULL pointer access in teardown code 2018-12-21 14:11:32 +01:00
nvram_64.c pstore: Fix flags to enable dumps on powerpc 2017-05-20 14:28:42 +02:00
of_platform.c powerpc/eeh: Do probe on pci_dn 2015-03-24 13:15:52 +11:00
paca.c powerpc/mm: Convert early cpu/mmu feature check to use the new helpers 2016-08-01 11:15:01 +10:00
pci-common.c Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-10-14 14:26:58 -07:00
pci-hotplug.c powerpc/pci: Don't scan empty slot 2016-05-11 21:54:26 +10:00
pci_32.c powerpc/32: Add a missing include header 2018-08-03 07:55:18 +02:00
pci_64.c powerpc fixes for 4.7 #5 2016-07-15 14:57:47 +10:00
pci_dn.c powerpc/pci_dn: Add missing of_node_put() 2022-10-26 13:15:44 +02:00
pci_of_scan.c powerpc/pci/of: Parse unassigned resources 2020-05-10 10:28:00 +02:00
pmc.c
ppc32.h
ppc_save_regs.S
proc_powerpc.c
process.c powerpc: Enable execve syscall exit tracepoint 2022-07-02 16:17:15 +02:00
prom.c powerpc/64: Init jump labels before parse_early_param() 2022-08-25 11:09:32 +02:00
prom_init.c powerpc/prom_init: Fix improper check of prom_getprop() 2022-01-27 08:47:35 +01:00
prom_init_check.sh
prom_parse.c
ptrace.c powerpc/32: Fix overread/overwrite of thread_struct via ptrace 2022-06-14 16:52:41 +02:00
ptrace32.c ptrace: Don't allow accessing an undumpable mm 2017-01-06 10:40:13 +01:00
reloc_32.S
reloc_64.S
rtas-proc.c powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
rtas-rtc.c
rtas.c powerpc/rtas: avoid scheduling in rtas_os_term() 2023-01-07 12:07:34 +01:00
rtas_flash.c
rtas_pci.c powerpc: move find_and_init_phbs() to pSeries specific code 2015-04-11 20:49:09 +10:00
rtasd.c powerpc/pseries: start rtasd before PCI probing 2016-07-08 19:22:15 +10:00
security.c powerpc/security: Fix wrong message when RFI Flush is disable 2020-01-04 13:40:53 +01:00
setup-common.c powerpc/fsl: Enable runtime patching if nospectre_v2 boot arg is used 2019-04-17 08:36:43 +02:00
setup.h powerpc: Merge 32-bit and 64-bit setup_arch() 2016-07-21 19:17:46 +10:00
setup_32.c Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-10-14 14:26:58 -07:00
setup_64.c powerpc/64s: flush L1D after user accesses 2020-11-22 09:58:14 +01:00
signal.c powerpc/signal: Properly handle return value from uprobe_deny_signal() 2017-11-30 08:39:08 +00:00
signal.h powerpc: tm: Rename transct_(*) to ck(\1)_state 2016-10-04 20:33:16 +11:00
signal_32.c powerpc/tm: Fix oops on sigreturn on systems without TM 2019-08-04 09:33:43 +02:00
signal_64.c powerpc/64/tm: Don't let userspace set regs->trap via sigreturn 2020-04-24 07:59:00 +02:00
smp-tbsync.c
smp.c powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING 2022-01-27 08:47:39 +01:00
stacktrace.c powerpc: Implement save_stack_trace_regs() to enable kprobe stack tracing 2016-01-11 14:27:28 +11:00
suspend.c
swsusp.c powerpc/mm: Abstraction for switch_mmu_context() 2016-05-01 18:33:04 +10:00
swsusp_32.S powerpc/32s: fix suspend/resume when IBATs 4-7 are used 2019-08-04 09:33:31 +02:00
swsusp_64.c
swsusp_asm64.S powerpc: Fix invalid use of register expressions 2019-04-17 08:36:39 +02:00
swsusp_booke.S
sys_ppc32.c
syscalls.c powerpc/sparse: Add more assembler prototypes 2016-09-13 17:36:58 +10:00
sysfs.c powerpc: Warn about use of smt_snooze_delay 2020-11-10 10:23:58 +01:00
systbl.S powerpc: Add a proper syscall for switching endianness 2015-03-28 22:03:40 +11:00
systbl_chk.c powerpc: Standardise on NR_syscalls rather than __NR_syscalls. 2015-11-26 22:11:17 +11:00
systbl_chk.sh powerpc: Standardise on NR_syscalls rather than __NR_syscalls. 2015-11-26 22:11:17 +11:00
tau_6xx.c powerpc/tau: Disable TAU between measurements 2020-10-29 09:05:38 +01:00
time.c powerpc/pseries: Mark accumulate_stolen_time() as notrace 2020-01-04 13:40:42 +01:00
tm.S powerpc/tm: Avoid possible userspace r1 corruption on reclaim 2018-10-20 09:51:31 +02:00
trace_clock.c powerpc/ftrace: add powerpc timebase as a trace clock source 2015-08-06 16:36:23 +10:00
traps.c UPSTREAM: powerpc/traps: Fix the message printed when stack overflows 2022-02-21 16:30:05 +01:00
udbg.c powerpc: Remove the celleb support 2015-04-07 17:15:13 +10:00
udbg_16550.c
uprobes.c
vdso.c powerpc/vdso: Fix vdso cpu truncation 2020-08-21 11:02:02 +02:00
vecemu.c
vector.S Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-10-14 14:26:58 -07:00
vio.c dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
vmlinux.lds.S BACKPORT: bpf: Support llvm-objcopy for vmlinux BTF 2026-05-15 17:58:11 +07:00