powerpc/64s: Merge HV and non-HV paths for doorbell IRQ replay
This results in smaller code, and fewer branches. This relies on the fact that both the 0xe80 and 0xa00 handlers call the same upper level code, namely doorbell_exception(). Signed-off-by: Nicholas Piggin <npiggin@gmail.com> [mpe: Mention we rely on the implementation of the 0xe80/0xa00 handlers] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
6f881eaeb5
commit
d6f73fc69b
|
@ -966,11 +966,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
|
|||
#ifdef CONFIG_PPC_BOOK3E
|
||||
cmpwi cr0,r3,0x280
|
||||
#else
|
||||
BEGIN_FTR_SECTION
|
||||
cmpwi cr0,r3,0xe80
|
||||
FTR_SECTION_ELSE
|
||||
cmpwi cr0,r3,0xa00
|
||||
ALT_FTR_SECTION_END_IFSET(CPU_FTR_HVMODE)
|
||||
cmpwi cr0,r3,0xa00
|
||||
#endif /* CONFIG_PPC_BOOK3E */
|
||||
bne 1f
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD;
|
||||
|
|
|
@ -1676,7 +1676,7 @@ _GLOBAL(__replay_interrupt)
|
|||
cmpwi r3,0x500
|
||||
beq hardware_interrupt_common
|
||||
BEGIN_FTR_SECTION
|
||||
cmpwi r3,0xe80
|
||||
cmpwi r3,0xa00
|
||||
beq h_doorbell_common_msgclr
|
||||
cmpwi r3,0xea0
|
||||
beq h_virt_irq_common
|
||||
|
|
|
@ -207,8 +207,6 @@ notrace unsigned int __check_irq_replay(void)
|
|||
#else
|
||||
if (happened & PACA_IRQ_DBELL) {
|
||||
local_paca->irq_happened &= ~PACA_IRQ_DBELL;
|
||||
if (cpu_has_feature(CPU_FTR_HVMODE))
|
||||
return 0xe80;
|
||||
return 0xa00;
|
||||
}
|
||||
#endif /* CONFIG_PPC_BOOK3E */
|
||||
|
|
Loading…
Reference in New Issue