mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 13:55:32 +00:00
powerpc/irq: Enhance readability of trap types
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
This commit is contained in:
parent
7fab639729
commit
e522331173
2 changed files with 6 additions and 8 deletions
|
@ -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
|
||||
|
|
|
@ -142,7 +142,7 @@ void replay_soft_interrupts(void)
|
|||
*/
|
||||
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(®s);
|
||||
if (!(local_paca->irq_happened & PACA_IRQ_HARD_DIS))
|
||||
hard_irq_disable();
|
||||
|
@ -150,7 +150,7 @@ void replay_soft_interrupts(void)
|
|||
|
||||
if (local_paca->irq_happened & PACA_IRQ_DEC) {
|
||||
local_paca->irq_happened &= ~PACA_IRQ_DEC;
|
||||
regs.trap = 0x900;
|
||||
regs.trap = INTERRUPT_DECREMENTER;
|
||||
timer_interrupt(®s);
|
||||
if (!(local_paca->irq_happened & PACA_IRQ_HARD_DIS))
|
||||
hard_irq_disable();
|
||||
|
@ -158,7 +158,7 @@ void replay_soft_interrupts(void)
|
|||
|
||||
if (local_paca->irq_happened & PACA_IRQ_EE) {
|
||||
local_paca->irq_happened &= ~PACA_IRQ_EE;
|
||||
regs.trap = 0x500;
|
||||
regs.trap = INTERRUPT_EXTERNAL;
|
||||
do_IRQ(®s);
|
||||
if (!(local_paca->irq_happened & PACA_IRQ_HARD_DIS))
|
||||
hard_irq_disable();
|
||||
|
@ -166,10 +166,7 @@ void replay_soft_interrupts(void)
|
|||
|
||||
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(®s);
|
||||
if (!(local_paca->irq_happened & PACA_IRQ_HARD_DIS))
|
||||
hard_irq_disable();
|
||||
|
@ -178,7 +175,7 @@ void replay_soft_interrupts(void)
|
|||
/* 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(®s);
|
||||
if (!(local_paca->irq_happened & PACA_IRQ_HARD_DIS))
|
||||
hard_irq_disable();
|
||||
|
|
Loading…
Reference in a new issue