lkml.org 
[lkml]   [2021]   [May]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 444/530] powerpc/xive: Drop check on irq_data in xive_core_debug_show()
    Date
    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


    \
     
     \ /
      Last update: 2021-05-12 19:01    [W:4.648 / U:0.264 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site