summaryrefslogtreecommitdiff
path: root/arch/powerpc/sysdev/fsl_mpic_err.c
diff options
context:
space:
mode:
authorMarc Zyngier <maz@kernel.org>2021-05-04 17:42:18 +0100
committerMarc Zyngier <maz@kernel.org>2021-08-12 11:39:41 +0100
commit2c8996583013a2e2fa09a2c4ddebe6692c45a9c2 (patch)
treeb706670e543e4d07b6a8117892177435a40f5413 /arch/powerpc/sysdev/fsl_mpic_err.c
parent153517d4e7d1c3f5d6174db6177ff3f3f56a9b5c (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.c11
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);
}