diff options
author | Cédric Le Goater <clg@kaod.org> | 2019-08-14 17:47:54 +0200 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2019-08-19 05:20:24 +0200 |
commit | 39f14e79b15a40709ef177bc4c07f193b6d3bce3 (patch) | |
tree | c9df2b88d4959c7dc2476e2e5707ba39e8dadd31 /arch | |
parent | powerpc/xive: Fix dump of XIVE interrupt under pseries (diff) | |
download | linux-39f14e79b15a40709ef177bc4c07f193b6d3bce3.tar.xz linux-39f14e79b15a40709ef177bc4c07f193b6d3bce3.zip |
powerpc/xmon: Add a dump of all XIVE interrupts
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
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/xmon/xmon.c | 21 |
1 files changed, 21 insertions, 0 deletions
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; } |