powerpc/64s/exception: improve 0x500 handler code
authorNicholas Piggin <npiggin@gmail.com>
Sat, 22 Jun 2019 13:15:23 +0000 (23:15 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 2 Jul 2019 10:24:42 +0000 (20:24 +1000)
After the previous cleanup, it becomes possible to consolidate some
common code outside the runtime alternate patching. Also remove
unused labels.

This results in some code change, but unchanged runtime instruction
sequence.

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

index 2774046e6cf43c97b857cee3d823d95061201760..6bf77070b1ba9bb6777e05cbde3a727067ecfb07 100644 (file)
@@ -746,32 +746,24 @@ ALT_MMU_FTR_SECTION_END_IFCLR(MMU_FTR_TYPE_RADIX)
 
 
 EXC_REAL_BEGIN(hardware_interrupt, 0x500, 0x100)
-       .globl hardware_interrupt_hv
-hardware_interrupt_hv:
+       SET_SCRATCH0(r13)       /* save r13 */
+       EXCEPTION_PROLOG_0 PACA_EXGEN
        BEGIN_FTR_SECTION
-               SET_SCRATCH0(r13)       /* save r13 */
-               EXCEPTION_PROLOG_0 PACA_EXGEN
                EXCEPTION_PROLOG_1 EXC_HV, PACA_EXGEN, 1, 0x500, IRQS_DISABLED
                EXCEPTION_PROLOG_2_REAL hardware_interrupt_common, EXC_HV, 1
        FTR_SECTION_ELSE
-               SET_SCRATCH0(r13)       /* save r13 */
-               EXCEPTION_PROLOG_0 PACA_EXGEN
                EXCEPTION_PROLOG_1 EXC_STD, PACA_EXGEN, 1, 0x500, IRQS_DISABLED
                EXCEPTION_PROLOG_2_REAL hardware_interrupt_common, EXC_STD, 1
        ALT_FTR_SECTION_END_IFSET(CPU_FTR_HVMODE | CPU_FTR_ARCH_206)
 EXC_REAL_END(hardware_interrupt, 0x500, 0x100)
 
 EXC_VIRT_BEGIN(hardware_interrupt, 0x4500, 0x100)
-       .globl hardware_interrupt_relon_hv
-hardware_interrupt_relon_hv:
+       SET_SCRATCH0(r13)       /* save r13 */
+       EXCEPTION_PROLOG_0 PACA_EXGEN
        BEGIN_FTR_SECTION
-               SET_SCRATCH0(r13)       /* save r13 */
-               EXCEPTION_PROLOG_0 PACA_EXGEN
                EXCEPTION_PROLOG_1 EXC_HV, PACA_EXGEN, 1, 0x500, IRQS_DISABLED
                EXCEPTION_PROLOG_2_VIRT hardware_interrupt_common, EXC_HV
        FTR_SECTION_ELSE
-               SET_SCRATCH0(r13)       /* save r13 */
-               EXCEPTION_PROLOG_0 PACA_EXGEN
                EXCEPTION_PROLOG_1 EXC_STD, PACA_EXGEN, 1, 0x500, IRQS_DISABLED
                EXCEPTION_PROLOG_2_VIRT hardware_interrupt_common, EXC_STD
        ALT_FTR_SECTION_END_IFSET(CPU_FTR_HVMODE)