Modify the xmon 'dxi' command to query all interrupts if no IRQ number
is specified.

Signed-off-by: Cédric Le Goater <c...@kaod.org>
---
 arch/powerpc/xmon/xmon.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 4ea53e05053f..dc9832e06256 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -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;
        }
 
-- 
2.21.0

Reply via email to