summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2017-08-12 02:39:04 +1000
committerMichael Ellerman <mpe@ellerman.id.au>2017-08-23 23:15:23 +1000
commite6c1203d5ce9b3bd36a7951bc7f075b8db4ba971 (patch)
treeb01d88fb1db0e9b8e498fd323c27e891e2300f77 /arch/powerpc/kernel
parentd6f73fc69bf5837ad0d028d2a40f912921ed839f (diff)
downloadlinux-e6c1203d5ce9b3bd36a7951bc7f075b8db4ba971.tar.gz
linux-e6c1203d5ce9b3bd36a7951bc7f075b8db4ba971.tar.bz2
linux-e6c1203d5ce9b3bd36a7951bc7f075b8db4ba971.zip
powerpc/64s: Use the HV handler for external IRQ replay in HV mode on POWER9
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>
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r--arch/powerpc/kernel/exceptions-64s.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
index ab1dc98b73d0..72098638b0b9 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -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