Re: [PATCH bpf-next v9 3/4] bpf, arm64: Implement bpf_arch_text_poke() for arm64

From: Xu Kuohai
Date: Mon Jul 18 2022 - 11:37:16 EST


On 7/18/2022 9:52 PM, Jon Hunter wrote:

[..]
>
> This change appears to be causing the build to fail ...
>
> /tmp/cc52xO0c.s: Assembler messages:
> /tmp/cc52xO0c.s:8: Error: operand 1 should be an integer register --
> `mov lr,x9'
> /tmp/cc52xO0c.s:7: Error: undefined symbol lr used as an immediate value
> make[2]: *** [scripts/Makefile.build:250: arch/arm64/net/bpf_jit_comp.o]
> Error 1
> make[1]: *** [scripts/Makefile.build:525: arch/arm64/net] Error 2
>
> Let me know if you have any thoughts.
>

Sorry for this failure, but I can't reproduce it.

I guess maybe your assembler doesn't recognize "lr". Could you give a
try to replace "lr" with "x30"?

#if IS_ENABLED(CONFIG_ARM64_BTI_KERNEL)
" bti j\n" /* dummy_tramp is called via "br x10" */
#endif
-" mov x10, lr\n"
-" mov lr, x9\n"
+" mov x10, x30\n"
+" mov x30, x9\n"
" ret x10\n"
" .size dummy_tramp, .-dummy_tramp\n"
" .popsection\n

Thanks.

> Cheers
> Jon
>