[PATCH powerpc] Fix parameter restoring issue in commit 752a6422f
Li Zhong
zhong at linux.vnet.ibm.com
Wed Jun 25 14:00:04 EST 2014
In commit 752a6422f, new stack frame is created for parameters.
However, the r1 is added back a little earlier, so r3 and r4 are
restored from a wrong place, which could cause following error during
boot:
Querying for OPAL presence... there !
DEFAULT CATCH!, exception-handler=fff00700
at %SRR0: 0000000004223058 %SRR1: 8000000000081002
Open Firmware exception handler entered from non-OF code
Client's Fix Pt Regs:
00 0000000004223054 0000000004223020 0000000004fbe838 0000000000000002
04 0000000028002024 0000000004fbe838 000000000427e838 0000000004222f20
08 0000000000000000 0000000000000000 0000000004222f20 0000000000001002
0c a000000000000001 0000000000000000 0000000001a3fd20 00000000040eb170
10 00000000040eb628 00000000040eb368 fffffffffffffffd 0000000001a3fd20
14 0000000001b37f00 000000000f340000 0000000000cc0000 000000000f340000
18 00000000040ebb08 0000000003580000 00000000040eb128 0000000004285920
1c 0000000001a3fd60 00000000040eb100 7c0802a6f8010010 f821ff914b91ebd1
Special Regs:
%IV: 00000700 %CR: 28002022 %XER: 00000000 %DSISR: 42000000
%SRR0: 0000000004223058 %SRR1: 8000000000081002
%LR: 0000000004223054 %CTR: 0000000000000000
%DAR: 01a3fcf00020b4ac
Virtual PID = 0
ok
Signed-off-by: Li Zhong <zhong at linux.vnet.ibm.com>
---
diff --git a/arch/powerpc/platforms/powernv/opal-takeover.S b/arch/powerpc/platforms/powernv/opal-takeover.S
index 11a3169..9093540 100644
--- a/arch/powerpc/platforms/powernv/opal-takeover.S
+++ b/arch/powerpc/platforms/powernv/opal-takeover.S
@@ -5,6 +5,7 @@
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+B
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
@@ -27,11 +28,11 @@ _GLOBAL(opal_query_takeover)
li r3,H_HAL_TAKEOVER
li r4,H_HAL_TAKEOVER_QUERY_MAGIC
HVSC
- addi r1,r1,STACKFRAMESIZE
ld r10,STK_PARAM(R3)(r1)
std r4,0(r10)
ld r10,STK_PARAM(R4)(r1)
std r5,0(r10)
+ addi r1,r1,STACKFRAMESIZE
lwz r0,8(r1)
mtcrf 0xff,r0
blr
More information about the Linuxppc-dev
mailing list