diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2014-07-15 07:15:38 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2014-07-28 00:11:24 -0400 |
commit | 9daf112bd41ee9ca24a9a87adc70f70400a2ba5b (patch) | |
tree | 1ec965d62a5e41ba6741721327482fd13a3a14e9 /arch/powerpc/kernel | |
parent | a1d711c53f413db330da57bfaf53255a5d62447e (diff) |
powerpc: Remove misleading DISABLE_INTS
DISABLE_INTS has a long and storied history, but for some time now it
has not actually disabled interrupts.
For the open-coded exception handlers, just stop using it, instead call
RECONCILE_IRQ_STATE directly. This has the benefit of removing a level
of indirection, and making it clear that r10 & r11 are used at that
point.
For the addition case we still need a macro, so rename it to clarify
what it actually does.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r-- | arch/powerpc/kernel/exceptions-64s.S | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S index 647d6c75ed62..f521b2dac051 100644 --- a/arch/powerpc/kernel/exceptions-64s.S +++ b/arch/powerpc/kernel/exceptions-64s.S | |||
@@ -965,7 +965,7 @@ data_access_common: | |||
965 | mfspr r10,SPRN_DSISR | 965 | mfspr r10,SPRN_DSISR |
966 | stw r10,PACA_EXGEN+EX_DSISR(r13) | 966 | stw r10,PACA_EXGEN+EX_DSISR(r13) |
967 | EXCEPTION_PROLOG_COMMON(0x300, PACA_EXGEN) | 967 | EXCEPTION_PROLOG_COMMON(0x300, PACA_EXGEN) |
968 | DISABLE_INTS | 968 | RECONCILE_IRQ_STATE(r10, r11) |
969 | ld r12,_MSR(r1) | 969 | ld r12,_MSR(r1) |
970 | ld r3,PACA_EXGEN+EX_DAR(r13) | 970 | ld r3,PACA_EXGEN+EX_DAR(r13) |
971 | lwz r4,PACA_EXGEN+EX_DSISR(r13) | 971 | lwz r4,PACA_EXGEN+EX_DSISR(r13) |
@@ -981,7 +981,7 @@ h_data_storage_common: | |||
981 | stw r10,PACA_EXGEN+EX_DSISR(r13) | 981 | stw r10,PACA_EXGEN+EX_DSISR(r13) |
982 | EXCEPTION_PROLOG_COMMON(0xe00, PACA_EXGEN) | 982 | EXCEPTION_PROLOG_COMMON(0xe00, PACA_EXGEN) |
983 | bl save_nvgprs | 983 | bl save_nvgprs |
984 | DISABLE_INTS | 984 | RECONCILE_IRQ_STATE(r10, r11) |
985 | addi r3,r1,STACK_FRAME_OVERHEAD | 985 | addi r3,r1,STACK_FRAME_OVERHEAD |
986 | bl unknown_exception | 986 | bl unknown_exception |
987 | b ret_from_except | 987 | b ret_from_except |
@@ -990,7 +990,7 @@ h_data_storage_common: | |||
990 | .globl instruction_access_common | 990 | .globl instruction_access_common |
991 | instruction_access_common: | 991 | instruction_access_common: |
992 | EXCEPTION_PROLOG_COMMON(0x400, PACA_EXGEN) | 992 | EXCEPTION_PROLOG_COMMON(0x400, PACA_EXGEN) |
993 | DISABLE_INTS | 993 | RECONCILE_IRQ_STATE(r10, r11) |
994 | ld r12,_MSR(r1) | 994 | ld r12,_MSR(r1) |
995 | ld r3,_NIP(r1) | 995 | ld r3,_NIP(r1) |
996 | andis. r4,r12,0x5820 | 996 | andis. r4,r12,0x5820 |
@@ -1054,7 +1054,7 @@ slb_miss_fault: | |||
1054 | 1054 | ||
1055 | unrecov_user_slb: | 1055 | unrecov_user_slb: |
1056 | EXCEPTION_PROLOG_COMMON(0x4200, PACA_EXGEN) | 1056 | EXCEPTION_PROLOG_COMMON(0x4200, PACA_EXGEN) |
1057 | DISABLE_INTS | 1057 | RECONCILE_IRQ_STATE(r10, r11) |
1058 | bl save_nvgprs | 1058 | bl save_nvgprs |
1059 | 1: addi r3,r1,STACK_FRAME_OVERHEAD | 1059 | 1: addi r3,r1,STACK_FRAME_OVERHEAD |
1060 | bl unrecoverable_exception | 1060 | bl unrecoverable_exception |
@@ -1077,7 +1077,7 @@ machine_check_common: | |||
1077 | stw r10,PACA_EXGEN+EX_DSISR(r13) | 1077 | stw r10,PACA_EXGEN+EX_DSISR(r13) |
1078 | EXCEPTION_PROLOG_COMMON(0x200, PACA_EXMC) | 1078 | EXCEPTION_PROLOG_COMMON(0x200, PACA_EXMC) |
1079 | FINISH_NAP | 1079 | FINISH_NAP |
1080 | DISABLE_INTS | 1080 | RECONCILE_IRQ_STATE(r10, r11) |
1081 | ld r3,PACA_EXGEN+EX_DAR(r13) | 1081 | ld r3,PACA_EXGEN+EX_DAR(r13) |
1082 | lwz r4,PACA_EXGEN+EX_DSISR(r13) | 1082 | lwz r4,PACA_EXGEN+EX_DSISR(r13) |
1083 | std r3,_DAR(r1) | 1083 | std r3,_DAR(r1) |
@@ -1100,7 +1100,7 @@ alignment_common: | |||
1100 | std r3,_DAR(r1) | 1100 | std r3,_DAR(r1) |
1101 | std r4,_DSISR(r1) | 1101 | std r4,_DSISR(r1) |
1102 | bl save_nvgprs | 1102 | bl save_nvgprs |
1103 | DISABLE_INTS | 1103 | RECONCILE_IRQ_STATE(r10, r11) |
1104 | addi r3,r1,STACK_FRAME_OVERHEAD | 1104 | addi r3,r1,STACK_FRAME_OVERHEAD |
1105 | bl alignment_exception | 1105 | bl alignment_exception |
1106 | b ret_from_except | 1106 | b ret_from_except |
@@ -1110,7 +1110,7 @@ alignment_common: | |||
1110 | program_check_common: | 1110 | program_check_common: |
1111 | EXCEPTION_PROLOG_COMMON(0x700, PACA_EXGEN) | 1111 | EXCEPTION_PROLOG_COMMON(0x700, PACA_EXGEN) |
1112 | bl save_nvgprs | 1112 | bl save_nvgprs |
1113 | DISABLE_INTS | 1113 | RECONCILE_IRQ_STATE(r10, r11) |
1114 | addi r3,r1,STACK_FRAME_OVERHEAD | 1114 | addi r3,r1,STACK_FRAME_OVERHEAD |
1115 | bl program_check_exception | 1115 | bl program_check_exception |
1116 | b ret_from_except | 1116 | b ret_from_except |
@@ -1121,7 +1121,7 @@ fp_unavailable_common: | |||
1121 | EXCEPTION_PROLOG_COMMON(0x800, PACA_EXGEN) | 1121 | EXCEPTION_PROLOG_COMMON(0x800, PACA_EXGEN) |
1122 | bne 1f /* if from user, just load it up */ | 1122 | bne 1f /* if from user, just load it up */ |
1123 | bl save_nvgprs | 1123 | bl save_nvgprs |
1124 | DISABLE_INTS | 1124 | RECONCILE_IRQ_STATE(r10, r11) |
1125 | addi r3,r1,STACK_FRAME_OVERHEAD | 1125 | addi r3,r1,STACK_FRAME_OVERHEAD |
1126 | bl kernel_fp_unavailable_exception | 1126 | bl kernel_fp_unavailable_exception |
1127 | BUG_OPCODE | 1127 | BUG_OPCODE |
@@ -1140,7 +1140,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_TM) | |||
1140 | #ifdef CONFIG_PPC_TRANSACTIONAL_MEM | 1140 | #ifdef CONFIG_PPC_TRANSACTIONAL_MEM |
1141 | 2: /* User process was in a transaction */ | 1141 | 2: /* User process was in a transaction */ |
1142 | bl save_nvgprs | 1142 | bl save_nvgprs |
1143 | DISABLE_INTS | 1143 | RECONCILE_IRQ_STATE(r10, r11) |
1144 | addi r3,r1,STACK_FRAME_OVERHEAD | 1144 | addi r3,r1,STACK_FRAME_OVERHEAD |
1145 | bl fp_unavailable_tm | 1145 | bl fp_unavailable_tm |
1146 | b ret_from_except | 1146 | b ret_from_except |
@@ -1166,7 +1166,7 @@ BEGIN_FTR_SECTION | |||
1166 | #ifdef CONFIG_PPC_TRANSACTIONAL_MEM | 1166 | #ifdef CONFIG_PPC_TRANSACTIONAL_MEM |
1167 | 2: /* User process was in a transaction */ | 1167 | 2: /* User process was in a transaction */ |
1168 | bl save_nvgprs | 1168 | bl save_nvgprs |
1169 | DISABLE_INTS | 1169 | RECONCILE_IRQ_STATE(r10, r11) |
1170 | addi r3,r1,STACK_FRAME_OVERHEAD | 1170 | addi r3,r1,STACK_FRAME_OVERHEAD |
1171 | bl altivec_unavailable_tm | 1171 | bl altivec_unavailable_tm |
1172 | b ret_from_except | 1172 | b ret_from_except |
@@ -1175,7 +1175,7 @@ BEGIN_FTR_SECTION | |||
1175 | END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC) | 1175 | END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC) |
1176 | #endif | 1176 | #endif |
1177 | bl save_nvgprs | 1177 | bl save_nvgprs |
1178 | DISABLE_INTS | 1178 | RECONCILE_IRQ_STATE(r10, r11) |
1179 | addi r3,r1,STACK_FRAME_OVERHEAD | 1179 | addi r3,r1,STACK_FRAME_OVERHEAD |
1180 | bl altivec_unavailable_exception | 1180 | bl altivec_unavailable_exception |
1181 | b ret_from_except | 1181 | b ret_from_except |
@@ -1200,7 +1200,7 @@ BEGIN_FTR_SECTION | |||
1200 | #ifdef CONFIG_PPC_TRANSACTIONAL_MEM | 1200 | #ifdef CONFIG_PPC_TRANSACTIONAL_MEM |
1201 | 2: /* User process was in a transaction */ | 1201 | 2: /* User process was in a transaction */ |
1202 | bl save_nvgprs | 1202 | bl save_nvgprs |
1203 | DISABLE_INTS | 1203 | RECONCILE_IRQ_STATE(r10, r11) |
1204 | addi r3,r1,STACK_FRAME_OVERHEAD | 1204 | addi r3,r1,STACK_FRAME_OVERHEAD |
1205 | bl vsx_unavailable_tm | 1205 | bl vsx_unavailable_tm |
1206 | b ret_from_except | 1206 | b ret_from_except |
@@ -1209,7 +1209,7 @@ BEGIN_FTR_SECTION | |||
1209 | END_FTR_SECTION_IFSET(CPU_FTR_VSX) | 1209 | END_FTR_SECTION_IFSET(CPU_FTR_VSX) |
1210 | #endif | 1210 | #endif |
1211 | bl save_nvgprs | 1211 | bl save_nvgprs |
1212 | DISABLE_INTS | 1212 | RECONCILE_IRQ_STATE(r10, r11) |
1213 | addi r3,r1,STACK_FRAME_OVERHEAD | 1213 | addi r3,r1,STACK_FRAME_OVERHEAD |
1214 | bl vsx_unavailable_exception | 1214 | bl vsx_unavailable_exception |
1215 | b ret_from_except | 1215 | b ret_from_except |
@@ -1468,7 +1468,7 @@ slb_miss_realmode: | |||
1468 | 1468 | ||
1469 | unrecov_slb: | 1469 | unrecov_slb: |
1470 | EXCEPTION_PROLOG_COMMON(0x4100, PACA_EXSLB) | 1470 | EXCEPTION_PROLOG_COMMON(0x4100, PACA_EXSLB) |
1471 | DISABLE_INTS | 1471 | RECONCILE_IRQ_STATE(r10, r11) |
1472 | bl save_nvgprs | 1472 | bl save_nvgprs |
1473 | 1: addi r3,r1,STACK_FRAME_OVERHEAD | 1473 | 1: addi r3,r1,STACK_FRAME_OVERHEAD |
1474 | bl unrecoverable_exception | 1474 | bl unrecoverable_exception |