ARM: decompressor: move headroom variable out of LC0
authorArd Biesheuvel <ardb@kernel.org>
Mon, 13 Apr 2020 16:21:31 +0000 (18:21 +0200)
committerArd Biesheuvel <ardb@kernel.org>
Tue, 19 May 2020 14:56:10 +0000 (16:56 +0200)
Before breaking up LC0 into different pieces, move out the variable
that is already place-relative (given that it subtracts 'restart' in
the expression) and so its value does not need to be added to the
runtime address of the LC0 symbol itself.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Nicolas Pitre <nico@fluxnic.net>
arch/arm/boot/compressed/head.S

index cabdd8f..42b8d67 100644 (file)
@@ -287,7 +287,7 @@ not_angel:
                 */
                mov     r0, pc
                cmp     r0, r4
-               ldrcc   r0, LC0+28
+               ldrcc   r0, .Lheadroom
                addcc   r0, r0, pc
                cmpcc   r4, r0
                orrcc   r4, r4, #1              @ remember we skipped cache_on
@@ -664,9 +664,11 @@ LC0:               .word   LC0                     @ r1
                .word   _got_start              @ r11
                .word   _got_end                @ ip
                .word   .L_user_stack_end       @ sp
-               .word   _end - restart + 16384 + 1024*1024
                .size   LC0, . - LC0
 
+.Lheadroom:
+               .word   _end - restart + 16384 + 1024*1024
+
 .Linflated_image_size_offset:
                .long   (input_data_end - 4) - .