From: Joakim Tjernlund Date: Mon, 16 Jul 2012 21:25:40 +0000 (+0000) Subject: ppc: Create a stack frame for wait_ticks() X-Git-Tag: v2012.10-rc1~92 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=83f83d19354f9d9b4d5d6fc06dd9c00d2340dab5;p=u-boot ppc: Create a stack frame for wait_ticks() wait_ticks() calls get_ticks() without building a back chain which makes gdb unhappy when doing back trace. This can also cause improper memory accesses. Signed-off-by: Joakim Tjernlund --- diff --git a/arch/powerpc/lib/ticks.S b/arch/powerpc/lib/ticks.S index b8d25b7f46..17810395b8 100644 --- a/arch/powerpc/lib/ticks.S +++ b/arch/powerpc/lib/ticks.S @@ -47,7 +47,9 @@ get_ticks: */ .globl wait_ticks wait_ticks: - mflr r8 /* save link register */ + stwu r1, -16(r1) + mflr r0 /* save link register */ + stw r0, 20(r1) /* Use r0 or GDB will be unhappy */ mr r7, r3 /* save tick count */ bl get_ticks /* Get start time */ @@ -61,5 +63,6 @@ wait_ticks: subfe. r3, r3, r6 bge 1b /* Loop until time expired */ - mtlr r8 /* restore link register */ + mtlr r0 /* restore link register */ + addi r1,r1,16 blr