[ARM] pxa: don't rely on r2 being preserved over a function call
r2 is not guaranteed to be preserved over a function call, so relying on it to store the link register over the call to sleep_phys_sp() is unreliable. Store the link register on the stack instead. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
a7da60f415
commit
3b1904d00a
1 changed files with 2 additions and 4 deletions
|
@ -43,11 +43,11 @@ pxa_cpu_save_cp:
|
|||
pxa_cpu_save_sp:
|
||||
@ preserve phys address of stack
|
||||
mov r0, sp
|
||||
mov r2, lr
|
||||
str lr, [sp, #-4]!
|
||||
bl sleep_phys_sp
|
||||
ldr r1, =sleep_save_sp
|
||||
str r0, [r1]
|
||||
mov pc, r2
|
||||
ldr pc, [sp], #4
|
||||
|
||||
/*
|
||||
* pxa27x_cpu_suspend()
|
||||
|
@ -270,5 +270,3 @@ resume_after_mmu:
|
|||
mar acc0, r2, r3
|
||||
#endif
|
||||
ldmfd sp!, {r4 - r12, pc} @ return to caller
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue