On Thu, 02 May 2024 23:02:04 +0530, Hari Bathini wrote:
With PCREL addressing, there is no kernel TOC. So, it is not setup in prologue when PCREL addressing is used. But the number of instructions to skip on a tail call was not adjusted accordingly. That resulted in not so obvious failures while using tailcalls. 'tailcalls' selftest crashed the system with the below call trace:
bpf_test_run+0xe8/0x3cc (unreliable) bpf_prog_test_run_skb+0x348/0x778 __sys_bpf+0xb04/0x2b00 sys_bpf+0x28/0x38 system_call_exception+0x168/0x340 system_call_vectored_common+0x15c/0x2ec
[...]
Applied to powerpc/next.
[1/2] powerpc64/bpf: fix tail calls for PCREL addressing https://git.kernel.org/powerpc/c/2ecfe59cd7de1f202e9af2516a61fbbf93d0bd4d [2/2] powerpc/bpf: enable kfunc call https://git.kernel.org/powerpc/c/61688a82e047a4166436bf2665716cc070572ffa
cheers