[PATCH v8] arm64: Use static call trampolines when kCFI is enabled
Ard Biesheuvel
ardb at kernel.org
Wed Apr 1 05:03:22 PDT 2026
On Wed, 1 Apr 2026, at 12:03, Will Deacon wrote:
> On Tue, 31 Mar 2026 13:04:23 +0200, Ard Biesheuvel wrote:
>> Implement arm64 support for the 'unoptimized' static call variety, which
>> routes all calls through a trampoline that performs a tail call to the
>> chosen function, and wire it up for use when kCFI is enabled. This works
>> around an issue with kCFI and generic static calls, where the prototypes
>> of default handlers such as __static_call_nop() and __static_call_ret0()
>> don't match the expected prototype of the call site, resulting in kCFI
>> false positives [0].
>>
>> [...]
>
> Applied to arm64 (for-next/fixes), thanks!
>
> [1/1] arm64: Use static call trampolines when kCFI is enabled
> https://git.kernel.org/arm64/c/e70c2335f889
>
Thanks,
I just spotted that the function name gets stringified twice inadvertently.
E.g., the assembler may see
.quad "__static_call_return0"
rather than the intended
.quad __static_call_return0
The assembler does not seem to care, and still emits an ABS64 relocation against the correct symbol, but it is definitely unintentional.
I can send a follow-up fix if you prefer, or you could just tweak the patch in place:
--- a/arch/arm64/include/asm/static_call.h
+++ b/arch/arm64/include/asm/static_call.h
@@ -16,7 +16,7 @@
" .popsection \n" \
" .pushsection .rodata, \"a\" \n" \
" .align 3 \n" \
- "1: .quad " #target " \n" \
+ "1: .quad " target " \n" \
" .popsection \n")
More information about the linux-arm-kernel
mailing list