Message ID | 20170805205222.19868-6-ard.biesheuvel@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
* Ard Biesheuvel <ard.biesheuvel@linaro.org> [170805 13:54]: > Replace the open coded PC relative offset calculations with a pair > of adr_l invocations. > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> > --- > arch/arm/kernel/head.S | 12 ++---------- > 1 file changed, 2 insertions(+), 10 deletions(-) > > diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S > index 6e9df3663a57..aed341e0f530 100644 > --- a/arch/arm/kernel/head.S > +++ b/arch/arm/kernel/head.S > @@ -523,19 +523,11 @@ ARM_BE8(rev r0, r0) @ byteswap if big endian > retne lr > > __fixup_smp_on_up: > - adr r0, 1f > - ldmia r0, {r3 - r5} > - sub r3, r0, r3 > - add r4, r4, r3 > - add r5, r5, r3 > + adr_l r4, __smpalt_begin > + adr_l r5, __smpalt_end > b __do_fixup_smp_on_up > ENDPROC(__fixup_smp) > > - .align > -1: .word . > - .word __smpalt_begin > - .word __smpalt_end > - > .pushsection .data > .globl smp_on_up > smp_on_up: Ard, it's this one that cause boot to fail on omap3. The rest of your set works for me with just this one left out. Regards, Tony
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 6e9df3663a57..aed341e0f530 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S @@ -523,19 +523,11 @@ ARM_BE8(rev r0, r0) @ byteswap if big endian retne lr __fixup_smp_on_up: - adr r0, 1f - ldmia r0, {r3 - r5} - sub r3, r0, r3 - add r4, r4, r3 - add r5, r5, r3 + adr_l r4, __smpalt_begin + adr_l r5, __smpalt_end b __do_fixup_smp_on_up ENDPROC(__fixup_smp) - .align -1: .word . - .word __smpalt_begin - .word __smpalt_end - .pushsection .data .globl smp_on_up smp_on_up:
Replace the open coded PC relative offset calculations with a pair of adr_l invocations. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> --- arch/arm/kernel/head.S | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-)