|
@@ -575,13 +575,19 @@ __secondary_start:
|
|
|
/* Initialize the kernel stack. Just a repeat for iSeries. */
|
|
|
LOAD_REG_ADDR(r3, current_set)
|
|
|
sldi r28,r24,3 /* get current_set[cpu#] */
|
|
|
- ldx r1,r3,r28
|
|
|
- addi r1,r1,THREAD_SIZE-STACK_FRAME_OVERHEAD
|
|
|
- std r1,PACAKSAVE(r13)
|
|
|
+ ldx r14,r3,r28
|
|
|
+ addi r14,r14,THREAD_SIZE-STACK_FRAME_OVERHEAD
|
|
|
+ std r14,PACAKSAVE(r13)
|
|
|
|
|
|
/* Do early setup for that CPU (stab, slb, hash table pointer) */
|
|
|
bl .early_setup_secondary
|
|
|
|
|
|
+ /*
|
|
|
+ * setup the new stack pointer, but *don't* use this until
|
|
|
+ * translation is on.
|
|
|
+ */
|
|
|
+ mr r1, r14
|
|
|
+
|
|
|
/* Clear backchain so we get nice backtraces */
|
|
|
li r7,0
|
|
|
mtlr r7
|