projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e0c827c
)
powerpc/64s: Optimise clearing of MSR_EE in masked_[H]interrupt()
author
Nicholas Piggin
<npiggin@gmail.com>
Fri, 11 Aug 2017 16:39:00 +0000
(
02:39
+1000)
committer
Michael Ellerman
<mpe@ellerman.id.au>
Wed, 23 Aug 2017 13:06:48 +0000
(23:06 +1000)
MSR_EE is always enabled in SRR1 for masked interrupts, so we can use
xor to clear it.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/exceptions-64s.S
patch
|
blob
|
history
diff --git
a/arch/powerpc/kernel/exceptions-64s.S
b/arch/powerpc/kernel/exceptions-64s.S
index caf083d8950099922ce2b53964d9791d2fdbfb09..2cc5e9d4c907e963465d3c6cafb4f048f624d748 100644
(file)
--- a/
arch/powerpc/kernel/exceptions-64s.S
+++ b/
arch/powerpc/kernel/exceptions-64s.S
@@
-1373,8
+1373,7
@@
masked_##_H##interrupt: \
1: andi. r10,r10,(PACA_IRQ_DBELL|PACA_IRQ_HMI); \
bne 2f; \
mfspr r10,SPRN_##_H##SRR1; \
- rldicl r10,r10,48,1; /* clear MSR_EE */ \
- rotldi r10,r10,16; \
+ xori r10,r10,MSR_EE; /* clear MSR_EE */ \
mtspr SPRN_##_H##SRR1,r10; \
2: mtcrf 0x80,r9; \
ld r9,PACA_EXGEN+EX_R9(r13); \