linux/arch/s390
Ilya Leoshkevich ba3d5b12f7 s390/bpf: Store backchain even for leaf progs
[ Upstream commit 5f55f21684 ]

Currently a crash in a leaf prog (caused by a bug) produces the
following call trace:

     [<000003ff600ebf00>] bpf_prog_6df0139e1fbf2789_fentry+0x20/0x78
     [<0000000000000000>] 0x0

This is because leaf progs do not store backchain. Fix by making all
progs do it. This is what GCC and Clang-generated code does as well.
Now the call trace looks like this:

     [<000003ff600eb0f2>] bpf_prog_6df0139e1fbf2789_fentry+0x2a/0x80
     [<000003ff600ed096>] bpf_trampoline_201863462940+0x96/0xf4
     [<000003ff600e3a40>] bpf_prog_05f379658fdd72f2_classifier_0+0x58/0xc0
     [<000003ffe0aef070>] bpf_test_run+0x210/0x390
     [<000003ffe0af0dc2>] bpf_prog_test_run_skb+0x25a/0x668
     [<000003ffe038a90e>] __sys_bpf+0xa46/0xdb0
     [<000003ffe038ad0c>] __s390x_sys_bpf+0x44/0x50
     [<000003ffe0defea8>] __do_syscall+0x150/0x280
     [<000003ffe0e01d5c>] system_call+0x74/0x98

Fixes: 0546231057 ("s390/bpf: Add s390x eBPF JIT compiler backend")
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Link: https://lore.kernel.org/r/20250512122717.54878-1-iii@linux.ibm.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-06-27 11:07:11 +01:00
..
appldata s390/appldata: use struct_size() helper 2020-06-29 16:32:34 +02:00
boot s390/boot: Remove alt_stfle_fac_list from decompressor 2024-06-12 11:03:44 +02:00
configs s390/configs: add kasan.config addon config file 2022-11-08 19:32:32 +01:00
crypto crypto: s390/aes - Fix buffer overread in CTR mode 2024-01-31 16:16:58 -08:00
hypfs s390/hypfs: avoid error message under KVM 2022-08-15 17:19:51 +02:00
include s390/futex: Fix FUTEX_OP_ANDN implementation 2025-02-21 13:49:38 +01:00
kernel s390/traps: Fix test_monitor_call() inline assembly 2025-03-13 12:53:15 +01:00
kvm KVM: s390: Don't use %pK through tracepoints 2025-05-02 07:47:04 +02:00
lib s390/uaccess: add missing earlyclobber annotations to __clear_user() 2023-04-06 12:10:55 +02:00
mm s390/mm: Add cond_resched() to cmm_alloc/free_pages() 2024-10-17 15:22:13 +02:00
net s390/bpf: Store backchain even for leaf progs 2025-06-27 11:07:11 +01:00
pci s390/pci: Handle PCI error codes other than 0x3a 2024-11-01 01:55:57 +01:00
purgatory s390: Add '-std=gnu11' to decompressor and purgatory CFLAGS 2025-02-21 13:49:28 +01:00
tools KVM: s390: Add facility 197 to the allow list 2022-07-13 15:25:25 +02:00
Kbuild kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00
Kconfig s390: always build relocatable kernel 2022-11-08 19:32:32 +01:00
Kconfig.debug s390/Kconfig.debug: fix indentation 2022-06-01 12:03:15 +02:00
Makefile s390: Add '-std=gnu11' to decompressor and purgatory CFLAGS 2025-02-21 13:49:28 +01:00