OSDN Git Service

powerpc/xive: Simplify xive_core_debug_show()
authorCédric Le Goater <clg@kaod.org>
Wed, 31 Mar 2021 14:45:09 +0000 (16:45 +0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 14 Apr 2021 13:04:14 +0000 (23:04 +1000)
Now that the IPI interrupt has its own domain, the checks on the HW
interrupt number XIVE_IPI_HW_IRQ and on the chip can be replaced by a
check on the domain.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210331144514.892250-5-clg@kaod.org
arch/powerpc/sysdev/xive/common.c

index 3badef7..09da16e 100644 (file)
@@ -1604,17 +1604,14 @@ static void xive_debug_show_cpu(struct seq_file *m, int cpu)
        seq_puts(m, "\n");
 }
 
-static void xive_debug_show_irq(struct seq_file *m, u32 hw_irq, struct irq_data *d)
+static void xive_debug_show_irq(struct seq_file *m, struct irq_data *d)
 {
-       struct irq_chip *chip = irq_data_get_irq_chip(d);
+       unsigned int hw_irq = (unsigned int)irqd_to_hwirq(d);
        int rc;
        u32 target;
        u8 prio;
        u32 lirq;
 
-       if (!is_xive_irq(chip))
-               return;
-
        rc = xive_ops->get_irq_config(hw_irq, &target, &prio, &lirq);
        if (rc) {
                seq_printf(m, "IRQ 0x%08x : no config rc=%d\n", hw_irq, rc);
@@ -1652,16 +1649,9 @@ static int xive_core_debug_show(struct seq_file *m, void *private)
 
        for_each_irq_desc(i, desc) {
                struct irq_data *d = irq_desc_get_irq_data(desc);
-               unsigned int hw_irq;
-
-               if (!d)
-                       continue;
-
-               hw_irq = (unsigned int)irqd_to_hwirq(d);
 
-               /* IPIs are special (HW number 0) */
-               if (hw_irq != XIVE_IPI_HW_IRQ)
-                       xive_debug_show_irq(m, hw_irq, d);
+               if (d->domain == xive_irq_domain)
+                       xive_debug_show_irq(m, d);
        }
        return 0;
 }