powerpc/64s: Use the HV handler for external IRQ replay in HV mode on POWER9
authorNicholas Piggin <npiggin@gmail.com>
Fri, 11 Aug 2017 16:39:04 +0000 (02:39 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 23 Aug 2017 13:15:23 +0000 (23:15 +1000)
POWER9 host external interrupts use the h_virt_irq_common handler, so
use that to replay them rather than using the hardware_interrupt_common
handler. Both call do_IRQ, but using the correct handler reduces
i-cache footprint.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/exceptions-64s.S

index ab1dc98b73d0b223a5964695c38554e0e7139b22..72098638b0b90bf78c5de17c2262125b79f1ecc2 100644 (file)
@@ -1674,7 +1674,11 @@ _GLOBAL(__replay_interrupt)
        cmpwi   r3,0x900
        beq     decrementer_common
        cmpwi   r3,0x500
+BEGIN_FTR_SECTION
+       beq     h_virt_irq_common
+FTR_SECTION_ELSE
        beq     hardware_interrupt_common
+ALT_FTR_SECTION_END_IFSET(CPU_FTR_HVMODE | CPU_FTR_ARCH_300)
 BEGIN_FTR_SECTION
        cmpwi   r3,0xa00
        beq     h_doorbell_common_msgclr