diff options
| author | Marc Zyngier <maz@kernel.org> | 2021-05-04 17:42:18 +0100 |
|---|---|---|
| committer | Marc Zyngier <maz@kernel.org> | 2021-08-12 11:39:41 +0100 |
| commit | 2c8996583013a2e2fa09a2c4ddebe6692c45a9c2 (patch) | |
| tree | b706670e543e4d07b6a8117892177435a40f5413 /arch/powerpc/sysdev/fsl_mpic_err.c | |
| parent | 153517d4e7d1c3f5d6174db6177ff3f3f56a9b5c (diff) | |
powerpc: Bulk conversion to generic_handle_domain_irq()
Wherever possible, replace constructs that match either
generic_handle_irq(irq_find_mapping()) or
generic_handle_irq(irq_linear_revmap()) to a single call to
generic_handle_domain_irq().
Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'arch/powerpc/sysdev/fsl_mpic_err.c')
| -rw-r--r-- | arch/powerpc/sysdev/fsl_mpic_err.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/powerpc/sysdev/fsl_mpic_err.c b/arch/powerpc/sysdev/fsl_mpic_err.c index 5fa5fa215541..9a98bb212922 100644 --- a/arch/powerpc/sysdev/fsl_mpic_err.c +++ b/arch/powerpc/sysdev/fsl_mpic_err.c @@ -99,7 +99,6 @@ static irqreturn_t fsl_error_int_handler(int irq, void *data) struct mpic *mpic = (struct mpic *) data; u32 eisr, eimr; int errint; - unsigned int cascade_irq; eisr = mpic_fsl_err_read(mpic->err_regs, MPIC_ERR_INT_EISR); eimr = mpic_fsl_err_read(mpic->err_regs, MPIC_ERR_INT_EIMR); @@ -108,13 +107,11 @@ static irqreturn_t fsl_error_int_handler(int irq, void *data) return IRQ_NONE; while (eisr) { + int ret; errint = __builtin_clz(eisr); - cascade_irq = irq_linear_revmap(mpic->irqhost, - mpic->err_int_vecs[errint]); - WARN_ON(!cascade_irq); - if (cascade_irq) { - generic_handle_irq(cascade_irq); - } else { + ret = generic_handle_domain_irq(mpic->irqhost, + mpic->err_int_vecs[errint]); + if (WARN_ON(ret)) { eimr |= 1 << (31 - errint); mpic_fsl_err_write(mpic->err_regs, eimr); } |