powerpc/xmon: Add a dump of all XIVE interrupts
authorCédric Le Goater <clg@kaod.org>
Wed, 14 Aug 2019 15:47:54 +0000 (17:47 +0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 19 Aug 2019 03:20:24 +0000 (13:20 +1000)
Modify the xmon 'dxi' command to query all interrupts if no IRQ number
is specified.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190814154754.23682-4-clg@kaod.org
arch/powerpc/xmon/xmon.c

index 4ea53e05053f74ae975d6560c801cae839467964..dc9832e062561f03066fa576d42c4620b8caa077 100644 (file)
@@ -2584,6 +2584,25 @@ static void dump_one_xive_irq(u32 num)
                    num, target, prio, lirq, rc);
 }
 
+static void dump_all_xive_irq(void)
+{
+       unsigned int i;
+       struct irq_desc *desc;
+
+       for_each_irq_desc(i, desc) {
+               struct irq_data *d = irq_desc_get_irq_data(desc);
+               unsigned int hwirq;
+
+               if (!d)
+                       continue;
+
+               hwirq = (unsigned int)irqd_to_hwirq(d);
+               /* IPIs are special (HW number 0) */
+               if (hwirq)
+                       dump_one_xive_irq(hwirq);
+       }
+}
+
 static void dump_xives(void)
 {
        unsigned long num;
@@ -2601,6 +2620,8 @@ static void dump_xives(void)
        } else if (c == 'i') {
                if (scanhex(&num))
                        dump_one_xive_irq(num);
+               else
+                       dump_all_xive_irq();
                return;
        }