| From a73ddea207b5012ee408d659296230fd21b8562f Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 31 Mar 2021 16:45:10 +0200 |
| Subject: powerpc/xive: Drop check on irq_data in xive_core_debug_show() |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Cédric Le Goater <clg@kaod.org> |
| |
| [ Upstream commit a74ce5926b20cd0e6d624a9b2527073a96dfed7f ] |
| |
| When looping on IRQ descriptor, irq_data is always valid. |
| |
| Fixes: 930914b7d528 ("powerpc/xive: Add a debugfs file to dump internal XIVE state") |
| Reported-by: kernel test robot <lkp@intel.com> |
| Reported-by: Dan Carpenter <dan.carpenter@oracle.com> |
| 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-6-clg@kaod.org |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/powerpc/sysdev/xive/common.c | 21 ++++++++++----------- |
| 1 file changed, 10 insertions(+), 11 deletions(-) |
| |
| diff --git a/arch/powerpc/sysdev/xive/common.c b/arch/powerpc/sysdev/xive/common.c |
| index a80440af491a..5899ffb28c58 100644 |
| --- a/arch/powerpc/sysdev/xive/common.c |
| +++ b/arch/powerpc/sysdev/xive/common.c |
| @@ -1606,6 +1606,8 @@ static void xive_debug_show_irq(struct seq_file *m, u32 hw_irq, struct irq_data |
| u32 target; |
| u8 prio; |
| u32 lirq; |
| + struct xive_irq_data *xd; |
| + u64 val; |
| |
| if (!is_xive_irq(chip)) |
| return; |
| @@ -1619,17 +1621,14 @@ static void xive_debug_show_irq(struct seq_file *m, u32 hw_irq, struct irq_data |
| seq_printf(m, "IRQ 0x%08x : target=0x%x prio=%02x lirq=0x%x ", |
| hw_irq, target, prio, lirq); |
| |
| - if (d) { |
| - struct xive_irq_data *xd = irq_data_get_irq_handler_data(d); |
| - u64 val = xive_esb_read(xd, XIVE_ESB_GET); |
| - |
| - seq_printf(m, "flags=%c%c%c PQ=%c%c", |
| - xd->flags & XIVE_IRQ_FLAG_STORE_EOI ? 'S' : ' ', |
| - xd->flags & XIVE_IRQ_FLAG_LSI ? 'L' : ' ', |
| - xd->flags & XIVE_IRQ_FLAG_H_INT_ESB ? 'H' : ' ', |
| - val & XIVE_ESB_VAL_P ? 'P' : '-', |
| - val & XIVE_ESB_VAL_Q ? 'Q' : '-'); |
| - } |
| + xd = irq_data_get_irq_handler_data(d); |
| + val = xive_esb_read(xd, XIVE_ESB_GET); |
| + seq_printf(m, "flags=%c%c%c PQ=%c%c", |
| + xd->flags & XIVE_IRQ_FLAG_STORE_EOI ? 'S' : ' ', |
| + xd->flags & XIVE_IRQ_FLAG_LSI ? 'L' : ' ', |
| + xd->flags & XIVE_IRQ_FLAG_H_INT_ESB ? 'H' : ' ', |
| + val & XIVE_ESB_VAL_P ? 'P' : '-', |
| + val & XIVE_ESB_VAL_Q ? 'Q' : '-'); |
| seq_puts(m, "\n"); |
| } |
| |
| -- |
| 2.30.2 |
| |