diff options
-rw-r--r-- | arch/powerpc/include/asm/exception-64s.h | 15 | ||||
-rw-r--r-- | arch/powerpc/include/asm/reg.h | 14 | ||||
-rw-r--r-- | arch/powerpc/kernel/exceptions-64s.S | 26 | ||||
-rw-r--r-- | arch/powerpc/kvm/book3s_rmhandlers.S | 6 | ||||
-rw-r--r-- | arch/powerpc/kvm/book3s_segment.S | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/iseries/exception.S | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/iseries/exception.h | 4 |
7 files changed, 41 insertions, 28 deletions
diff --git a/arch/powerpc/include/asm/exception-64s.h b/arch/powerpc/include/asm/exception-64s.h index fb5b0af30fcf..d6b4849df9b1 100644 --- a/arch/powerpc/include/asm/exception-64s.h +++ b/arch/powerpc/include/asm/exception-64s.h | |||
@@ -60,16 +60,15 @@ | |||
60 | #define EXC_HV H | 60 | #define EXC_HV H |
61 | #define EXC_STD | 61 | #define EXC_STD |
62 | 62 | ||
63 | #define __EXCEPTION_PROLOG_1(area, h) \ | 63 | #define EXCEPTION_PROLOG_1(area) \ |
64 | GET_PACA(r13); \ | 64 | GET_PACA(r13); \ |
65 | std r9,area+EX_R9(r13); /* save r9 - r12 */ \ | 65 | std r9,area+EX_R9(r13); /* save r9 - r12 */ \ |
66 | std r10,area+EX_R10(r13); \ | 66 | std r10,area+EX_R10(r13); \ |
67 | std r11,area+EX_R11(r13); \ | 67 | std r11,area+EX_R11(r13); \ |
68 | std r12,area+EX_R12(r13); \ | 68 | std r12,area+EX_R12(r13); \ |
69 | mfspr r9,SPRN_SPRG_##h##SCRATCH0; \ | 69 | GET_SCRATCH0(r9); \ |
70 | std r9,area+EX_R13(r13); \ | 70 | std r9,area+EX_R13(r13); \ |
71 | mfcr r9 | 71 | mfcr r9 |
72 | #define EXCEPTION_PROLOG_1(area, h) __EXCEPTION_PROLOG_1(area, h) | ||
73 | 72 | ||
74 | #define __EXCEPTION_PROLOG_PSERIES_1(label, h) \ | 73 | #define __EXCEPTION_PROLOG_PSERIES_1(label, h) \ |
75 | ld r12,PACAKBASE(r13); /* get high part of &label */ \ | 74 | ld r12,PACAKBASE(r13); /* get high part of &label */ \ |
@@ -85,7 +84,7 @@ | |||
85 | __EXCEPTION_PROLOG_PSERIES_1(label, h) | 84 | __EXCEPTION_PROLOG_PSERIES_1(label, h) |
86 | 85 | ||
87 | #define EXCEPTION_PROLOG_PSERIES(area, label, h) \ | 86 | #define EXCEPTION_PROLOG_PSERIES(area, label, h) \ |
88 | EXCEPTION_PROLOG_1(area, h); \ | 87 | EXCEPTION_PROLOG_1(area); \ |
89 | EXCEPTION_PROLOG_PSERIES_1(label, h); | 88 | EXCEPTION_PROLOG_PSERIES_1(label, h); |
90 | 89 | ||
91 | /* | 90 | /* |
@@ -156,7 +155,7 @@ | |||
156 | label##_pSeries: \ | 155 | label##_pSeries: \ |
157 | HMT_MEDIUM; \ | 156 | HMT_MEDIUM; \ |
158 | DO_KVM vec; \ | 157 | DO_KVM vec; \ |
159 | mtspr SPRN_SPRG_SCRATCH0,r13; /* save r13 */ \ | 158 | SET_SCRATCH0(r13); /* save r13 */ \ |
160 | EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, label##_common, EXC_STD) | 159 | EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, label##_common, EXC_STD) |
161 | 160 | ||
162 | #define STD_EXCEPTION_HV(loc, vec, label) \ | 161 | #define STD_EXCEPTION_HV(loc, vec, label) \ |
@@ -165,13 +164,13 @@ label##_pSeries: \ | |||
165 | label##_hv: \ | 164 | label##_hv: \ |
166 | HMT_MEDIUM; \ | 165 | HMT_MEDIUM; \ |
167 | DO_KVM vec; \ | 166 | DO_KVM vec; \ |
168 | mtspr SPRN_SPRG_HSCRATCH0,r13;/* save r13 */ \ | 167 | SET_SCRATCH0(r13); /* save r13 */ \ |
169 | EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, label##_common, EXC_HV) | 168 | EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, label##_common, EXC_HV) |
170 | 169 | ||
171 | #define __MASKABLE_EXCEPTION_PSERIES(vec, label, h) \ | 170 | #define __MASKABLE_EXCEPTION_PSERIES(vec, label, h) \ |
172 | HMT_MEDIUM; \ | 171 | HMT_MEDIUM; \ |
173 | DO_KVM vec; \ | 172 | DO_KVM vec; \ |
174 | mtspr SPRN_SPRG_##h##SCRATCH0,r13; /* save r13 */ \ | 173 | SET_SCRATCH0(r13); /* save r13 */ \ |
175 | GET_PACA(r13); \ | 174 | GET_PACA(r13); \ |
176 | std r9,PACA_EXGEN+EX_R9(r13); /* save r9, r10 */ \ | 175 | std r9,PACA_EXGEN+EX_R9(r13); /* save r9, r10 */ \ |
177 | std r10,PACA_EXGEN+EX_R10(r13); \ | 176 | std r10,PACA_EXGEN+EX_R10(r13); \ |
@@ -179,7 +178,7 @@ label##_hv: \ | |||
179 | mfcr r9; \ | 178 | mfcr r9; \ |
180 | cmpwi r10,0; \ | 179 | cmpwi r10,0; \ |
181 | beq masked_##h##interrupt; \ | 180 | beq masked_##h##interrupt; \ |
182 | mfspr r10,SPRN_SPRG_##h##SCRATCH0; \ | 181 | GET_SCRATCH0(r10); \ |
183 | std r10,PACA_EXGEN+EX_R13(r13); \ | 182 | std r10,PACA_EXGEN+EX_R13(r13); \ |
184 | std r11,PACA_EXGEN+EX_R11(r13); \ | 183 | std r11,PACA_EXGEN+EX_R11(r13); \ |
185 | std r12,PACA_EXGEN+EX_R12(r13); \ | 184 | std r12,PACA_EXGEN+EX_R12(r13); \ |
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h index 13429a0eba09..76d7d5fea5be 100644 --- a/arch/powerpc/include/asm/reg.h +++ b/arch/powerpc/include/asm/reg.h | |||
@@ -802,6 +802,20 @@ | |||
802 | FTR_SECTION_ELSE_NESTED(66); \ | 802 | FTR_SECTION_ELSE_NESTED(66); \ |
803 | mtspr SPRN_SPRG_HPACA,rX; \ | 803 | mtspr SPRN_SPRG_HPACA,rX; \ |
804 | ALT_FTR_SECTION_END_NESTED_IFCLR(CPU_FTR_HVMODE_206, 66) | 804 | ALT_FTR_SECTION_END_NESTED_IFCLR(CPU_FTR_HVMODE_206, 66) |
805 | |||
806 | #define GET_SCRATCH0(rX) \ | ||
807 | BEGIN_FTR_SECTION_NESTED(66); \ | ||
808 | mfspr rX,SPRN_SPRG_SCRATCH0; \ | ||
809 | FTR_SECTION_ELSE_NESTED(66); \ | ||
810 | mfspr rX,SPRN_SPRG_HSCRATCH0; \ | ||
811 | ALT_FTR_SECTION_END_NESTED_IFCLR(CPU_FTR_HVMODE_206, 66) | ||
812 | |||
813 | #define SET_SCRATCH0(rX) \ | ||
814 | BEGIN_FTR_SECTION_NESTED(66); \ | ||
815 | mtspr SPRN_SPRG_SCRATCH0,rX; \ | ||
816 | FTR_SECTION_ELSE_NESTED(66); \ | ||
817 | mtspr SPRN_SPRG_HSCRATCH0,rX; \ | ||
818 | ALT_FTR_SECTION_END_NESTED_IFCLR(CPU_FTR_HVMODE_206, 66) | ||
805 | #endif | 819 | #endif |
806 | 820 | ||
807 | #ifdef CONFIG_PPC_BOOK3E_64 | 821 | #ifdef CONFIG_PPC_BOOK3E_64 |
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S index 805e20657868..e513c1d35b2a 100644 --- a/arch/powerpc/kernel/exceptions-64s.S +++ b/arch/powerpc/kernel/exceptions-64s.S | |||
@@ -43,7 +43,7 @@ __start_interrupts: | |||
43 | _machine_check_pSeries: | 43 | _machine_check_pSeries: |
44 | HMT_MEDIUM | 44 | HMT_MEDIUM |
45 | DO_KVM 0x200 | 45 | DO_KVM 0x200 |
46 | mtspr SPRN_SPRG_SCRATCH0,r13 /* save r13 */ | 46 | SET_SCRATCH0(r13) |
47 | EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common, EXC_STD) | 47 | EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common, EXC_STD) |
48 | 48 | ||
49 | . = 0x300 | 49 | . = 0x300 |
@@ -51,7 +51,7 @@ _machine_check_pSeries: | |||
51 | data_access_pSeries: | 51 | data_access_pSeries: |
52 | HMT_MEDIUM | 52 | HMT_MEDIUM |
53 | DO_KVM 0x300 | 53 | DO_KVM 0x300 |
54 | mtspr SPRN_SPRG_SCRATCH0,r13 | 54 | SET_SCRATCH0(r13) |
55 | BEGIN_FTR_SECTION | 55 | BEGIN_FTR_SECTION |
56 | GET_PACA(r13) | 56 | GET_PACA(r13) |
57 | std r9,PACA_EXSLB+EX_R9(r13) | 57 | std r9,PACA_EXSLB+EX_R9(r13) |
@@ -67,7 +67,7 @@ BEGIN_FTR_SECTION | |||
67 | std r11,PACA_EXGEN+EX_R11(r13) | 67 | std r11,PACA_EXGEN+EX_R11(r13) |
68 | ld r11,PACA_EXSLB+EX_R9(r13) | 68 | ld r11,PACA_EXSLB+EX_R9(r13) |
69 | std r12,PACA_EXGEN+EX_R12(r13) | 69 | std r12,PACA_EXGEN+EX_R12(r13) |
70 | mfspr r12,SPRN_SPRG_SCRATCH0 | 70 | GET_SCRATCH0(r12) |
71 | std r10,PACA_EXGEN+EX_R10(r13) | 71 | std r10,PACA_EXGEN+EX_R10(r13) |
72 | std r11,PACA_EXGEN+EX_R9(r13) | 72 | std r11,PACA_EXGEN+EX_R9(r13) |
73 | std r12,PACA_EXGEN+EX_R13(r13) | 73 | std r12,PACA_EXGEN+EX_R13(r13) |
@@ -81,7 +81,7 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_SLB) | |||
81 | data_access_slb_pSeries: | 81 | data_access_slb_pSeries: |
82 | HMT_MEDIUM | 82 | HMT_MEDIUM |
83 | DO_KVM 0x380 | 83 | DO_KVM 0x380 |
84 | mtspr SPRN_SPRG_SCRATCH0,r13 | 84 | SET_SCRATCH0(r13) |
85 | GET_PACA(r13) | 85 | GET_PACA(r13) |
86 | std r3,PACA_EXSLB+EX_R3(r13) | 86 | std r3,PACA_EXSLB+EX_R3(r13) |
87 | mfspr r3,SPRN_DAR | 87 | mfspr r3,SPRN_DAR |
@@ -95,7 +95,7 @@ data_access_slb_pSeries: | |||
95 | std r10,PACA_EXSLB+EX_R10(r13) | 95 | std r10,PACA_EXSLB+EX_R10(r13) |
96 | std r11,PACA_EXSLB+EX_R11(r13) | 96 | std r11,PACA_EXSLB+EX_R11(r13) |
97 | std r12,PACA_EXSLB+EX_R12(r13) | 97 | std r12,PACA_EXSLB+EX_R12(r13) |
98 | mfspr r10,SPRN_SPRG_SCRATCH0 | 98 | GET_SCRATCH0(r10) |
99 | std r10,PACA_EXSLB+EX_R13(r13) | 99 | std r10,PACA_EXSLB+EX_R13(r13) |
100 | mfspr r12,SPRN_SRR1 /* and SRR1 */ | 100 | mfspr r12,SPRN_SRR1 /* and SRR1 */ |
101 | #ifndef CONFIG_RELOCATABLE | 101 | #ifndef CONFIG_RELOCATABLE |
@@ -120,7 +120,7 @@ data_access_slb_pSeries: | |||
120 | instruction_access_slb_pSeries: | 120 | instruction_access_slb_pSeries: |
121 | HMT_MEDIUM | 121 | HMT_MEDIUM |
122 | DO_KVM 0x480 | 122 | DO_KVM 0x480 |
123 | mtspr SPRN_SPRG_SCRATCH0,r13 | 123 | SET_SCRATCH0(r13) |
124 | GET_PACA(r13) | 124 | GET_PACA(r13) |
125 | std r3,PACA_EXSLB+EX_R3(r13) | 125 | std r3,PACA_EXSLB+EX_R3(r13) |
126 | mfspr r3,SPRN_SRR0 /* SRR0 is faulting address */ | 126 | mfspr r3,SPRN_SRR0 /* SRR0 is faulting address */ |
@@ -134,7 +134,7 @@ instruction_access_slb_pSeries: | |||
134 | std r10,PACA_EXSLB+EX_R10(r13) | 134 | std r10,PACA_EXSLB+EX_R10(r13) |
135 | std r11,PACA_EXSLB+EX_R11(r13) | 135 | std r11,PACA_EXSLB+EX_R11(r13) |
136 | std r12,PACA_EXSLB+EX_R12(r13) | 136 | std r12,PACA_EXSLB+EX_R12(r13) |
137 | mfspr r10,SPRN_SPRG_SCRATCH0 | 137 | GET_SCRATCH0(r10) |
138 | std r10,PACA_EXSLB+EX_R13(r13) | 138 | std r10,PACA_EXSLB+EX_R13(r13) |
139 | mfspr r12,SPRN_SRR1 /* and SRR1 */ | 139 | mfspr r12,SPRN_SRR1 /* and SRR1 */ |
140 | #ifndef CONFIG_RELOCATABLE | 140 | #ifndef CONFIG_RELOCATABLE |
@@ -272,7 +272,7 @@ masked_interrupt: | |||
272 | rotldi r10,r10,16 | 272 | rotldi r10,r10,16 |
273 | mtspr SPRN_SRR1,r10 | 273 | mtspr SPRN_SRR1,r10 |
274 | ld r10,PACA_EXGEN+EX_R10(r13) | 274 | ld r10,PACA_EXGEN+EX_R10(r13) |
275 | mfspr r13,SPRN_SPRG_SCRATCH0 | 275 | GET_SCRATCH0(r13) |
276 | rfid | 276 | rfid |
277 | b . | 277 | b . |
278 | 278 | ||
@@ -285,7 +285,7 @@ masked_Hinterrupt: | |||
285 | rotldi r10,r10,16 | 285 | rotldi r10,r10,16 |
286 | mtspr SPRN_HSRR1,r10 | 286 | mtspr SPRN_HSRR1,r10 |
287 | ld r10,PACA_EXGEN+EX_R10(r13) | 287 | ld r10,PACA_EXGEN+EX_R10(r13) |
288 | mfspr r13,SPRN_SPRG_HSCRATCH0 | 288 | GET_SCRATCH0(r13) |
289 | hrfid | 289 | hrfid |
290 | b . | 290 | b . |
291 | 291 | ||
@@ -293,7 +293,7 @@ masked_Hinterrupt: | |||
293 | do_stab_bolted_pSeries: | 293 | do_stab_bolted_pSeries: |
294 | std r11,PACA_EXSLB+EX_R11(r13) | 294 | std r11,PACA_EXSLB+EX_R11(r13) |
295 | std r12,PACA_EXSLB+EX_R12(r13) | 295 | std r12,PACA_EXSLB+EX_R12(r13) |
296 | mfspr r10,SPRN_SPRG_SCRATCH0 | 296 | GET_SCRATCH0(r10) |
297 | std r10,PACA_EXSLB+EX_R13(r13) | 297 | std r10,PACA_EXSLB+EX_R13(r13) |
298 | EXCEPTION_PROLOG_PSERIES_1(.do_stab_bolted, EXC_STD) | 298 | EXCEPTION_PROLOG_PSERIES_1(.do_stab_bolted, EXC_STD) |
299 | 299 | ||
@@ -305,14 +305,14 @@ do_stab_bolted_pSeries: | |||
305 | .align 7 | 305 | .align 7 |
306 | system_reset_fwnmi: | 306 | system_reset_fwnmi: |
307 | HMT_MEDIUM | 307 | HMT_MEDIUM |
308 | mtspr SPRN_SPRG_SCRATCH0,r13 /* save r13 */ | 308 | SET_SCRATCH0(r13) /* save r13 */ |
309 | EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, system_reset_common, EXC_STD) | 309 | EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, system_reset_common, EXC_STD) |
310 | 310 | ||
311 | .globl machine_check_fwnmi | 311 | .globl machine_check_fwnmi |
312 | .align 7 | 312 | .align 7 |
313 | machine_check_fwnmi: | 313 | machine_check_fwnmi: |
314 | HMT_MEDIUM | 314 | HMT_MEDIUM |
315 | mtspr SPRN_SPRG_SCRATCH0,r13 /* save r13 */ | 315 | SET_SCRATCH0(r13) /* save r13 */ |
316 | EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common, EXC_STD) | 316 | EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common, EXC_STD) |
317 | 317 | ||
318 | #endif /* CONFIG_PPC_PSERIES */ | 318 | #endif /* CONFIG_PPC_PSERIES */ |
@@ -327,7 +327,7 @@ slb_miss_user_pseries: | |||
327 | std r10,PACA_EXGEN+EX_R10(r13) | 327 | std r10,PACA_EXGEN+EX_R10(r13) |
328 | std r11,PACA_EXGEN+EX_R11(r13) | 328 | std r11,PACA_EXGEN+EX_R11(r13) |
329 | std r12,PACA_EXGEN+EX_R12(r13) | 329 | std r12,PACA_EXGEN+EX_R12(r13) |
330 | mfspr r10,SPRG_SCRATCH0 | 330 | GET_SCRATCH0(r10) |
331 | ld r11,PACA_EXSLB+EX_R9(r13) | 331 | ld r11,PACA_EXSLB+EX_R9(r13) |
332 | ld r12,PACA_EXSLB+EX_R3(r13) | 332 | ld r12,PACA_EXSLB+EX_R3(r13) |
333 | std r10,PACA_EXGEN+EX_R13(r13) | 333 | std r10,PACA_EXGEN+EX_R13(r13) |
diff --git a/arch/powerpc/kvm/book3s_rmhandlers.S b/arch/powerpc/kvm/book3s_rmhandlers.S index 046e1f3d4432..ae99af66ca34 100644 --- a/arch/powerpc/kvm/book3s_rmhandlers.S +++ b/arch/powerpc/kvm/book3s_rmhandlers.S | |||
@@ -70,7 +70,7 @@ | |||
70 | .global kvmppc_trampoline_\intno | 70 | .global kvmppc_trampoline_\intno |
71 | kvmppc_trampoline_\intno: | 71 | kvmppc_trampoline_\intno: |
72 | 72 | ||
73 | mtspr SPRN_SPRG_SCRATCH0, r13 /* Save r13 */ | 73 | SET_SCRATCH0(r13) /* Save r13 */ |
74 | 74 | ||
75 | /* | 75 | /* |
76 | * First thing to do is to find out if we're coming | 76 | * First thing to do is to find out if we're coming |
@@ -89,7 +89,7 @@ kvmppc_trampoline_\intno: | |||
89 | lwz r12, (SHADOW_VCPU_OFF + SVCPU_SCRATCH1)(r13) | 89 | lwz r12, (SHADOW_VCPU_OFF + SVCPU_SCRATCH1)(r13) |
90 | mtcr r12 | 90 | mtcr r12 |
91 | PPC_LL r12, (SHADOW_VCPU_OFF + SVCPU_SCRATCH0)(r13) | 91 | PPC_LL r12, (SHADOW_VCPU_OFF + SVCPU_SCRATCH0)(r13) |
92 | mfspr r13, SPRN_SPRG_SCRATCH0 /* r13 = original r13 */ | 92 | GET_SCRATCH0(r13) /* r13 = original r13 */ |
93 | b kvmppc_resume_\intno /* Get back original handler */ | 93 | b kvmppc_resume_\intno /* Get back original handler */ |
94 | 94 | ||
95 | /* Now we know we're handling a KVM guest */ | 95 | /* Now we know we're handling a KVM guest */ |
@@ -157,7 +157,7 @@ kvmppc_handler_skip_ins: | |||
157 | lwz r12, (SHADOW_VCPU_OFF + SVCPU_SCRATCH1)(r13) | 157 | lwz r12, (SHADOW_VCPU_OFF + SVCPU_SCRATCH1)(r13) |
158 | mtcr r12 | 158 | mtcr r12 |
159 | PPC_LL r12, (SHADOW_VCPU_OFF + SVCPU_SCRATCH0)(r13) | 159 | PPC_LL r12, (SHADOW_VCPU_OFF + SVCPU_SCRATCH0)(r13) |
160 | mfspr r13, SPRN_SPRG_SCRATCH0 | 160 | GET_SCRATCH0(r13) |
161 | 161 | ||
162 | /* And get back into the code */ | 162 | /* And get back into the code */ |
163 | RFI | 163 | RFI |
diff --git a/arch/powerpc/kvm/book3s_segment.S b/arch/powerpc/kvm/book3s_segment.S index d842795d0f23..451264274b8c 100644 --- a/arch/powerpc/kvm/book3s_segment.S +++ b/arch/powerpc/kvm/book3s_segment.S | |||
@@ -168,7 +168,7 @@ kvmppc_handler_trampoline_exit: | |||
168 | PPC_STL r4, (SHADOW_VCPU_OFF + SVCPU_SHADOW_SRR1)(r13) | 168 | PPC_STL r4, (SHADOW_VCPU_OFF + SVCPU_SHADOW_SRR1)(r13) |
169 | 169 | ||
170 | /* Get scratch'ed off registers */ | 170 | /* Get scratch'ed off registers */ |
171 | mfspr r9, SPRN_SPRG_SCRATCH0 | 171 | GET_SCRATCH0(r9) |
172 | PPC_LL r8, (SHADOW_VCPU_OFF + SVCPU_SCRATCH0)(r13) | 172 | PPC_LL r8, (SHADOW_VCPU_OFF + SVCPU_SCRATCH0)(r13) |
173 | lwz r7, (SHADOW_VCPU_OFF + SVCPU_SCRATCH1)(r13) | 173 | lwz r7, (SHADOW_VCPU_OFF + SVCPU_SCRATCH1)(r13) |
174 | 174 | ||
diff --git a/arch/powerpc/platforms/iseries/exception.S b/arch/powerpc/platforms/iseries/exception.S index f7a487231a11..32a56c6dfa72 100644 --- a/arch/powerpc/platforms/iseries/exception.S +++ b/arch/powerpc/platforms/iseries/exception.S | |||
@@ -155,7 +155,7 @@ BEGIN_FTR_SECTION | |||
155 | std r12,PACA_EXGEN+EX_R13(r13) | 155 | std r12,PACA_EXGEN+EX_R13(r13) |
156 | EXCEPTION_PROLOG_ISERIES_1 | 156 | EXCEPTION_PROLOG_ISERIES_1 |
157 | FTR_SECTION_ELSE | 157 | FTR_SECTION_ELSE |
158 | EXCEPTION_PROLOG_1(PACA_EXGEN, EXC_STD) | 158 | EXCEPTION_PROLOG_1(PACA_EXGEN) |
159 | EXCEPTION_PROLOG_ISERIES_1 | 159 | EXCEPTION_PROLOG_ISERIES_1 |
160 | ALT_FTR_SECTION_END_IFCLR(CPU_FTR_SLB) | 160 | ALT_FTR_SECTION_END_IFCLR(CPU_FTR_SLB) |
161 | b data_access_common | 161 | b data_access_common |
diff --git a/arch/powerpc/platforms/iseries/exception.h b/arch/powerpc/platforms/iseries/exception.h index 57127d805fe3..bae3fba5ad8e 100644 --- a/arch/powerpc/platforms/iseries/exception.h +++ b/arch/powerpc/platforms/iseries/exception.h | |||
@@ -39,7 +39,7 @@ | |||
39 | label##_iSeries: \ | 39 | label##_iSeries: \ |
40 | HMT_MEDIUM; \ | 40 | HMT_MEDIUM; \ |
41 | mtspr SPRN_SPRG_SCRATCH0,r13; /* save r13 */ \ | 41 | mtspr SPRN_SPRG_SCRATCH0,r13; /* save r13 */ \ |
42 | EXCEPTION_PROLOG_1(area, EXC_STD); \ | 42 | EXCEPTION_PROLOG_1(area); \ |
43 | EXCEPTION_PROLOG_ISERIES_1; \ | 43 | EXCEPTION_PROLOG_ISERIES_1; \ |
44 | b label##_common | 44 | b label##_common |
45 | 45 | ||
@@ -48,7 +48,7 @@ label##_iSeries: \ | |||
48 | label##_iSeries: \ | 48 | label##_iSeries: \ |
49 | HMT_MEDIUM; \ | 49 | HMT_MEDIUM; \ |
50 | mtspr SPRN_SPRG_SCRATCH0,r13; /* save r13 */ \ | 50 | mtspr SPRN_SPRG_SCRATCH0,r13; /* save r13 */ \ |
51 | EXCEPTION_PROLOG_1(PACA_EXGEN, EXC_STD); \ | 51 | EXCEPTION_PROLOG_1(PACA_EXGEN); \ |
52 | lbz r10,PACASOFTIRQEN(r13); \ | 52 | lbz r10,PACASOFTIRQEN(r13); \ |
53 | cmpwi 0,r10,0; \ | 53 | cmpwi 0,r10,0; \ |
54 | beq- label##_iSeries_masked; \ | 54 | beq- label##_iSeries_masked; \ |