]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
powerpc/xive: Drop check on irq_data in xive_core_debug_show()
authorCédric Le Goater <clg@kaod.org>
Wed, 31 Mar 2021 14:45:10 +0000 (16:45 +0200)
committerKelsey Skunberg <kelsey.skunberg@canonical.com>
Mon, 24 May 2021 23:46:39 +0000 (17:46 -0600)
BugLink: https://bugs.launchpad.net/bugs/1929455
[ 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>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kelsey Skunberg <kelsey.skunberg@canonical.com>
arch/powerpc/sysdev/xive/common.c

index 595310e056f4dec4d00e10bafd6f1f639e6ec9a3..6e43bba807079e953fc777336b3e18748ea32c16 100644 (file)
@@ -1599,6 +1599,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;
@@ -1612,17 +1614,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");
 }