irq: simplify handle_domain_{irq,nmi}()
authorMark Rutland <mark.rutland@arm.com>
Tue, 19 Oct 2021 09:40:45 +0000 (10:40 +0100)
committerMark Rutland <mark.rutland@arm.com>
Mon, 25 Oct 2021 09:05:09 +0000 (10:05 +0100)
There's no need for handle_domain_{irq,nmi}() to open-code the NULL
check performed by handle_irq_desc(), nor the resolution of the desc
performed by generic_handle_domain_irq().

Use generic_handle_domain_irq() directly, as this is functioanlly
equivalent and clearer. At the same time, delete the stale comments,
which are no longer helpful.

There should be no functional change as a result of this patch.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
kernel/irq/irqdesc.c

index 4e3c29b..b07d0e1 100644 (file)
@@ -690,17 +690,11 @@ int handle_domain_irq(struct irq_domain *domain,
                      unsigned int hwirq, struct pt_regs *regs)
 {
        struct pt_regs *old_regs = set_irq_regs(regs);
-       struct irq_desc *desc;
-       int ret = 0;
+       int ret;
 
        irq_enter();
 
-       /* The irqdomain code provides boundary checks */
-       desc = irq_resolve_mapping(domain, hwirq);
-       if (likely(desc))
-               handle_irq_desc(desc);
-       else
-               ret = -EINVAL;
+       ret = generic_handle_domain_irq(domain, hwirq);
 
        irq_exit();
        set_irq_regs(old_regs);
@@ -721,24 +715,14 @@ int handle_domain_nmi(struct irq_domain *domain, unsigned int hwirq,
                      struct pt_regs *regs)
 {
        struct pt_regs *old_regs = set_irq_regs(regs);
-       struct irq_desc *desc;
-       int ret = 0;
+       int ret;
 
        /*
         * NMI context needs to be setup earlier in order to deal with tracing.
         */
        WARN_ON(!in_nmi());
 
-       desc = irq_resolve_mapping(domain, hwirq);
-
-       /*
-        * ack_bad_irq is not NMI-safe, just report
-        * an invalid interrupt.
-        */
-       if (likely(desc))
-               handle_irq_desc(desc);
-       else
-               ret = -EINVAL;
+       ret = generic_handle_domain_irq(domain, hwirq);
 
        set_irq_regs(old_regs);
        return ret;