summaryrefslogtreecommitdiff
path: root/arch/powerpc/kernel/rtas_entry.S
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2022-03-08 23:50:37 +1000
committerMichael Ellerman <mpe@ellerman.id.au>2022-05-19 23:11:27 +1000
commitc5a65e0a420d50655bf692fc7386813683c0cd81 (patch)
treee2c58770330f20b10959c70b9137b0a8f5a0d83a /arch/powerpc/kernel/rtas_entry.S
parent4e949faae2bd42783a2b2b732b7bf17557d94cfb (diff)
powerpc/rtas: Call enter_rtas with MSR[EE] disabled
Disable MSR[EE] in C code rather than asm. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Reviewed-by: Laurent Dufour <ldufour@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20220308135047.478297-5-npiggin@gmail.com
Diffstat (limited to 'arch/powerpc/kernel/rtas_entry.S')
-rw-r--r--arch/powerpc/kernel/rtas_entry.S15
1 files changed, 0 insertions, 15 deletions
diff --git a/arch/powerpc/kernel/rtas_entry.S b/arch/powerpc/kernel/rtas_entry.S
index b3149b80efbe..acf90a15e39d 100644
--- a/arch/powerpc/kernel/rtas_entry.S
+++ b/arch/powerpc/kernel/rtas_entry.S
@@ -24,8 +24,6 @@ _GLOBAL(enter_rtas)
lwz r4,RTASBASE(r4)
mfmsr r9
stw r9,8(r1)
- LOAD_REG_IMMEDIATE(r0,MSR_KERNEL)
- mtmsr r0 /* disable interrupts so SRR0/1 don't get trashed */
li r9,MSR_KERNEL & ~(MSR_IR|MSR_DR)
mtlr r6
stw r1, THREAD + RTAS_SP(r2)
@@ -87,20 +85,7 @@ _GLOBAL(enter_rtas)
li r0,0
mtcr r0
-#ifdef CONFIG_BUG
- /* There is no way it is acceptable to get here with interrupts enabled,
- * check it with the asm equivalent of WARN_ON
- */
- lbz r0,PACAIRQSOFTMASK(r13)
-1: tdeqi r0,IRQS_ENABLED
- EMIT_WARN_ENTRY 1b,__FILE__,__LINE__,BUGFLAG_WARNING
-#endif
-
- /* Hard-disable interrupts */
mfmsr r6
- rldicl r7,r6,48,1
- rotldi r7,r7,16
- mtmsrd r7,1
/* Unfortunately, the stack pointer and the MSR are also clobbered,
* so they are saved in the PACA which allows us to restore