Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6f73fc6 authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman
Browse files

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: default avatarNicholas Piggin <npiggin@gmail.com>
[mpe: Mention we rely on the implementation of the 0xe80/0xa00 handlers]
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 6f881eae
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -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)
#endif /* CONFIG_PPC_BOOK3E */
	bne	1f
	addi	r3,r1,STACK_FRAME_OVERHEAD;
+1 −1
Original line number Diff line number Diff line
@@ -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
+0 −2
Original line number Diff line number Diff line
@@ -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 */