aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2014-07-15 07:15:38 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-07-28 00:11:24 -0400
commit9daf112bd41ee9ca24a9a87adc70f70400a2ba5b (patch)
tree1ec965d62a5e41ba6741721327482fd13a3a14e9 /arch/powerpc/kernel
parenta1d711c53f413db330da57bfaf53255a5d62447e (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.S28
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
991instruction_access_common: 991instruction_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
1055unrecov_user_slb: 1055unrecov_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
10591: addi r3,r1,STACK_FRAME_OVERHEAD 10591: 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:
1110program_check_common: 1110program_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
11412: /* User process was in a transaction */ 11412: /* 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
11672: /* User process was in a transaction */ 11672: /* 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
1175END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC) 1175END_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
12012: /* User process was in a transaction */ 12012: /* 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
1209END_FTR_SECTION_IFSET(CPU_FTR_VSX) 1209END_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
1469unrecov_slb: 1469unrecov_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
14731: addi r3,r1,STACK_FRAME_OVERHEAD 14731: addi r3,r1,STACK_FRAME_OVERHEAD
1474 bl unrecoverable_exception 1474 bl unrecoverable_exception