[PATCH] arm64/efi: efistub: jump to 'stext' directly, not through the header

Mark Rutland mark.rutland at arm.com
Tue Jul 15 04:31:38 PDT 2014


> >> diff --git a/arch/arm64/kernel/efi-entry.S b/arch/arm64/kernel/efi-entry.S
> >> index 619b1dd7bcde..6ef541731d9e 100644
> >> --- a/arch/arm64/kernel/efi-entry.S
> >> +++ b/arch/arm64/kernel/efi-entry.S
> >> @@ -61,7 +61,7 @@ ENTRY(efi_stub_entry)
> >>        */
> >>       mov     x20, x0         // DTB address
> >>       ldr     x0, [sp, #16]   // relocated _text address
> >> -     mov     x21, x0
> >> +     add     x21, x0, #:lo12:stext_offset
> >
> > I think we can drop the :lo12: here, which will allow us to have a
> > warning if stext_offset is unexpectedly large (I believe this will
> > currently silently mask bits were that to happen?).
> >
> 
> There is no alternative lo12 relocation that errors out when the value
> does not fit, so it would have to use a literal instead.

Ah, that's a shame. What happens when the value doesn't fit if the
linker / assembler don't error out?

That sounds like a toolchain bug if they're silently doing the wrong
thing.

Cheers,
Mark.



More information about the linux-arm-kernel mailing list