From: Alan Modra Date: Fri, 27 Nov 2020 00:48:42 +0000 (+1100) Subject: powerpc/boot: Make use of REL16 relocs in powerpc/boot/util.S X-Git-Tag: v5.11-rc1~76^2~265 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=3d635aba0b35ad5412042d40732f8cec5f58e6c6;p=linux-block.git powerpc/boot: Make use of REL16 relocs in powerpc/boot/util.S Use bcl 20,31,0f rather than plain bl to avoid unbalancing the link stack. Update the code to use REL16 relocs, available for ppc64 in 2009 (and ppc32 in 2005). Signed-off-by: Alan Modra [mpe: Incorporate more detail into the change log] Signed-off-by: Michael Ellerman --- diff --git a/arch/powerpc/boot/util.S b/arch/powerpc/boot/util.S index d03cdb7606dc..6a92376daf3f 100644 --- a/arch/powerpc/boot/util.S +++ b/arch/powerpc/boot/util.S @@ -42,14 +42,11 @@ udelay: * (nanoseconds + (timebase_period_ns - 1 )) / timebase_period_ns * timebase_period_ns defaults to 60 (16.6MHz) */ mflr r5 - bl 0f + bcl 20,31,0f 0: mflr r6 mtlr r5 - lis r5,0b@ha - addi r5,r5,0b@l - subf r5,r5,r6 /* In case we're relocated */ - addis r5,r5,timebase_period_ns@ha - lwz r5,timebase_period_ns@l(r5) + addis r5,r6,(timebase_period_ns-0b)@ha + lwz r5,(timebase_period_ns-0b)@l(r5) add r4,r4,r5 addi r4,r4,-1 divw r4,r4,r5 /* BUS ticks */