On 17 December 2024 09:47:36 CET, Ard Biesheuvel <a...@kernel.org> wrote: >On Tue, 17 Dec 2024 at 00:37, David Woodhouse <dw...@infradead.org> wrote: >> >> From: David Woodhouse <d...@amazon.co.uk> >> >> A few places in the kexec control code page make the assumption that the >> first instruction of relocate_kernel is at the very start of the page. >> >> To allow for Clang CFI information to be added to relocate_kernel(), as >> well as the general principle of removing unwarranted assumptions, fix >> them to use the external __relocate_kernel_start symbol that the linker >> adds. This means using a separate addq and subq for calculating offsets, >> as the assembler can no longer calculate the delta directly for itself >> and relocations aren't that versatile. >> > >You can still avoid the absolute relocations though, ... ... >> + addq $identity_mapped, %rsi >> + subq $__relocate_kernel_start, %rsi > >... if you turn this into > >0: addq $identity_mapped - 0b, %rsi > subq $__relocate_kernel_start - 0b, %rsi
Is there any benefit to doing so? Are absolute relocations problematic?