summaryrefslogtreecommitdiffstats
path: root/drivers/irqchip/irq-sifive-plic.c
diff options
context:
space:
mode:
authorMarc Zyngier <maz@kernel.org>2021-05-04 18:42:18 +0200
committerMarc Zyngier <maz@kernel.org>2021-06-10 14:09:19 +0200
commit046a6ee2343bb26d85a9973a39ccdb9764236fa4 (patch)
tree3b0c0f7ffe6a7f8376395c5d84cf340a052bfa07 /drivers/irqchip/irq-sifive-plic.c
parentgenirq: Move non-irqdomain handle_domain_irq() handling into ARM's handle_IRQ() (diff)
downloadlinux-046a6ee2343bb26d85a9973a39ccdb9764236fa4.tar.xz
linux-046a6ee2343bb26d85a9973a39ccdb9764236fa4.zip
irqchip: 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(). Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'drivers/irqchip/irq-sifive-plic.c')
-rw-r--r--drivers/irqchip/irq-sifive-plic.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c
index 97d4d04b0a80..cf74cfa82045 100644
--- a/drivers/irqchip/irq-sifive-plic.c
+++ b/drivers/irqchip/irq-sifive-plic.c
@@ -233,13 +233,11 @@ static void plic_handle_irq(struct irq_desc *desc)
chained_irq_enter(chip, desc);
while ((hwirq = readl(claim))) {
- int irq = irq_find_mapping(handler->priv->irqdomain, hwirq);
-
- if (unlikely(irq <= 0))
+ int err = generic_handle_domain_irq(handler->priv->irqdomain,
+ hwirq);
+ if (unlikely(err))
pr_warn_ratelimited("can't find mapping for hwirq %lu\n",
hwirq);
- else
- generic_handle_irq(irq);
}
chained_irq_exit(chip, desc);