diff options
-rw-r--r-- | arch/ia64/kernel/head.S | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/ia64/kernel/head.S b/arch/ia64/kernel/head.S index 0d535d65eea6..8d3a9291b47f 100644 --- a/arch/ia64/kernel/head.S +++ b/arch/ia64/kernel/head.S | |||
@@ -95,6 +95,10 @@ RestRR: \ | |||
95 | add _idx1=1,_idx1;; \ | 95 | add _idx1=1,_idx1;; \ |
96 | br.cloop.sptk.few RestRR | 96 | br.cloop.sptk.few RestRR |
97 | 97 | ||
98 | #define SET_AREA_FOR_BOOTING_CPU(reg1, reg2) \ | ||
99 | movl reg1=sal_state_for_booting_cpu;; \ | ||
100 | ld8 reg2=[reg1];; | ||
101 | |||
98 | /* | 102 | /* |
99 | * Adjust region registers saved before starting to save | 103 | * Adjust region registers saved before starting to save |
100 | * break regs and rest of the states that need to be preserved. | 104 | * break regs and rest of the states that need to be preserved. |
@@ -150,7 +154,8 @@ RestRR: \ | |||
150 | stf.spill.nta [_reg1]=f31,16;; | 154 | stf.spill.nta [_reg1]=f31,16;; |
151 | 155 | ||
152 | #else | 156 | #else |
153 | #define SAL_TO_OS_BOOT_HANDOFF_STATE_SAVE(a1,a2) | 157 | #define SET_AREA_FOR_BOOTING_CPU(a1, a2) |
158 | #define SAL_TO_OS_BOOT_HANDOFF_STATE_SAVE(a1,a2, a3) | ||
154 | #define SAVE_REGION_REGS(_tmp, _r0, _r1, _r2, _r3, _r4, _r5, _r6, _r7) | 159 | #define SAVE_REGION_REGS(_tmp, _r0, _r1, _r2, _r3, _r4, _r5, _r6, _r7) |
155 | #define STORE_REGION_REGS(ptr, _r0, _r1, _r2, _r3, _r4, _r5, _r6, _r7) | 160 | #define STORE_REGION_REGS(ptr, _r0, _r1, _r2, _r3, _r4, _r5, _r6, _r7) |
156 | #endif | 161 | #endif |
@@ -260,8 +265,7 @@ start_ap: | |||
260 | ;; | 265 | ;; |
261 | 1: // now we are in virtual mode | 266 | 1: // now we are in virtual mode |
262 | 267 | ||
263 | movl r2=sal_state_for_booting_cpu;; | 268 | SET_AREA_FOR_BOOTING_CPU(r2, r16); |
264 | ld8 r16=[r2];; | ||
265 | 269 | ||
266 | STORE_REGION_REGS(r16, r8,r9,r10,r11,r12,r13,r14,r15); | 270 | STORE_REGION_REGS(r16, r8,r9,r10,r11,r12,r13,r14,r15); |
267 | SAL_TO_OS_BOOT_HANDOFF_STATE_SAVE(r16,r17,r25) | 271 | SAL_TO_OS_BOOT_HANDOFF_STATE_SAVE(r16,r17,r25) |