powerpc/irq: Enhance readability of trap types
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Mon, 19 Apr 2021 15:48:11 +0000 (15:48 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 21 Apr 2021 12:52:32 +0000 (22:52 +1000)
This patch makes use of trap types in irq.c

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/f7f8c9f98c33eaea316755c7fef150d1d77e047d.1618847273.git.christophe.leroy@csgroup.eu
arch/powerpc/include/asm/interrupt.h
arch/powerpc/kernel/irq.c

index 8970990..44cde2e 100644 (file)
@@ -23,6 +23,7 @@
 #define INTERRUPT_INST_SEGMENT    0x480
 #define INTERRUPT_TRACE           0xd00
 #define INTERRUPT_H_DATA_STORAGE  0xe00
+#define INTERRUPT_HMI                  0xe60
 #define INTERRUPT_H_FAC_UNAVAIL   0xf80
 #ifdef CONFIG_PPC_BOOK3S
 #define INTERRUPT_DOORBELL        0xa00
index 893d3f8..72cb453 100644 (file)
@@ -142,7 +142,7 @@ again:
         */
        if (IS_ENABLED(CONFIG_PPC_BOOK3S) && (local_paca->irq_happened & PACA_IRQ_HMI)) {
                local_paca->irq_happened &= ~PACA_IRQ_HMI;
-               regs.trap = 0xe60;
+               regs.trap = INTERRUPT_HMI;
                handle_hmi_exception(&regs);
                if (!(local_paca->irq_happened & PACA_IRQ_HARD_DIS))
                        hard_irq_disable();
@@ -150,7 +150,7 @@ again:
 
        if (local_paca->irq_happened & PACA_IRQ_DEC) {
                local_paca->irq_happened &= ~PACA_IRQ_DEC;
-               regs.trap = 0x900;
+               regs.trap = INTERRUPT_DECREMENTER;
                timer_interrupt(&regs);
                if (!(local_paca->irq_happened & PACA_IRQ_HARD_DIS))
                        hard_irq_disable();
@@ -158,7 +158,7 @@ again:
 
        if (local_paca->irq_happened & PACA_IRQ_EE) {
                local_paca->irq_happened &= ~PACA_IRQ_EE;
-               regs.trap = 0x500;
+               regs.trap = INTERRUPT_EXTERNAL;
                do_IRQ(&regs);
                if (!(local_paca->irq_happened & PACA_IRQ_HARD_DIS))
                        hard_irq_disable();
@@ -166,10 +166,7 @@ again:
 
        if (IS_ENABLED(CONFIG_PPC_DOORBELL) && (local_paca->irq_happened & PACA_IRQ_DBELL)) {
                local_paca->irq_happened &= ~PACA_IRQ_DBELL;
-               if (IS_ENABLED(CONFIG_PPC_BOOK3E))
-                       regs.trap = 0x280;
-               else
-                       regs.trap = 0xa00;
+               regs.trap = INTERRUPT_DOORBELL;
                doorbell_exception(&regs);
                if (!(local_paca->irq_happened & PACA_IRQ_HARD_DIS))
                        hard_irq_disable();
@@ -178,7 +175,7 @@ again:
        /* Book3E does not support soft-masking PMI interrupts */
        if (IS_ENABLED(CONFIG_PPC_BOOK3S) && (local_paca->irq_happened & PACA_IRQ_PMI)) {
                local_paca->irq_happened &= ~PACA_IRQ_PMI;
-               regs.trap = 0xf00;
+               regs.trap = INTERRUPT_PERFMON;
                performance_monitor_exception(&regs);
                if (!(local_paca->irq_happened & PACA_IRQ_HARD_DIS))
                        hard_irq_disable();