Subject: [PATCH 31/41] powerpc/64s: consolidate Hypervisor Facility Unavailable 0xf80 interrupt

From: Nicholas Piggin <[email-masked]>
Date: Wed, 21 Sep 2016 17:43:57 +1000

Signed-off-by: Nicholas Piggin <[email-masked]>
---
 arch/powerpc/kernel/exceptions-64s.S | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
index dfc1ced..5a3db33 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -1119,6 +1119,12 @@ COMMON_HANDLER(facility_unavailable_common, 0xf60, facility_unavailable_exceptio

 __VECTOR_HANDLER_REAL_OOL_HV(h_facility_unavailable, 0xf80, 0xfa0)
+__TRAMP_HANDLER_REAL_OOL_HV(h_facility_unavailable, 0xf80)
+__VECTOR_HANDLER_VIRT_OOL_HV(h_facility_unavailable, 0x4f80, 0x4fa0)
+__TRAMP_HANDLER_VIRT_OOL_HV(h_facility_unavailable, 0xf80)
+TRAMP_KVM_HV(PACA_EXGEN, 0xf80)
+COMMON_HANDLER(h_facility_unavailable_common, 0xf80, facility_unavailable_exception)
+
 
 VECTOR_HANDLER_REAL_NONE(0xfa0, 0x1200)
 
@@ -1247,10 +1253,6 @@ END_FTR_SECTION_IFSET(CPU_FTR_CFAR)
 #endif
 TRAMP_HANDLER_END(denorm_assist)
 
-	/* moved from 0xf00 */
-__TRAMP_HANDLER_REAL_OOL_HV(h_facility_unavailable, 0xf80)
-TRAMP_KVM_HV(PACA_EXGEN, 0xf80)
-
 /*
  * An interrupt came in while soft-disabled. We set paca->irq_happened, then:
  * - If it was a decrementer interrupt, we bump the dec to max and and return.
@@ -1397,8 +1399,6 @@ COMMON_HANDLER(altivec_assist_common, 0x1700, unknown_exception)
 	 * come here.
 	 */
 
-__VECTOR_HANDLER_VIRT_OOL_HV(h_facility_unavailable, 0x4f80, 0x4fa0)
-
 VECTOR_HANDLER_VIRT_NONE(0x4fa0, 0x5200)
 
 VECTOR_HANDLER_VIRT_NONE(0x5200, 0x5300)
@@ -1424,8 +1424,6 @@ TRAMP_HANDLER_BEGIN(ppc64_runlatch_on_trampoline)
 TRAMP_HANDLER_END(ppc64_runlatch_on_trampoline)
 
 	/* Equivalents to the above handlers for relocation-on interrupt vectors */
-__TRAMP_HANDLER_VIRT_OOL_HV(h_facility_unavailable, 0xf80)
-
 USE_FIXED_SECTION(virt_trampolines)
 	/*
 	 * The __end_interrupts marker must be past the out-of-line (OOL)
@@ -1439,8 +1437,6 @@ USE_FIXED_SECTION(virt_trampolines)
 __end_interrupts:
 UNUSE_FIXED_SECTION(virt_trampolines)
 
-COMMON_HANDLER(h_facility_unavailable_common, 0xf80, facility_unavailable_exception)
-
 #ifdef CONFIG_CBE_RAS
 COMMON_HANDLER(cbe_system_error_common, 0x1200, cbe_system_error_exception)
 COMMON_HANDLER(cbe_maintenance_common, 0x1600, cbe_maintenance_exception)
-- 
2.9.3