Subject: Re: [PATCH v2 4/8] powerpc/xive: Simplify xive_core_debug_show()

From: Greg Kurz <[email-masked]>
Date: Mon, 8 Mar 2021 19:07:10 +0100

On Wed, 3 Mar 2021 18:48:53 +0100
Cédric Le Goater <[email-masked]> wrote:

> Now that the IPI interrupt has its own domain, the checks on the HW
> interrupt number XIVE_IPI_HW_IRQ and on the chip can be replaced by a
> check on the domain.
> 
> Signed-off-by: Cédric Le Goater <[email-masked]>
> ---

Shouldn't this have the following tags ?

Reported-by: kernel test robot <[email-masked]>
Reported-by: Dan Carpenter <[email-masked]>
Fixes: 930914b7d528 ("powerpc/xive: Add a debugfs file to dump internal XIVE state")

Anyway,

Reviewed-by: Greg Kurz <[email-masked]>

>  arch/powerpc/sysdev/xive/common.c | 18 ++++--------------
>  1 file changed, 4 insertions(+), 14 deletions(-)
> 
> diff --git a/arch/powerpc/sysdev/xive/common.c b/arch/powerpc/sysdev/xive/common.c
> index 678680531d26..7581cb12bb53 100644
> --- a/arch/powerpc/sysdev/xive/common.c
> +++ b/arch/powerpc/sysdev/xive/common.c
> @@ -1579,17 +1579,14 @@ static void xive_debug_show_cpu(struct seq_file *m, int cpu)
>  	seq_puts(m, "\n");
>  }
>  
> -static void xive_debug_show_irq(struct seq_file *m, u32 hw_irq, struct irq_data *d)
> +static void xive_debug_show_irq(struct seq_file *m, struct irq_data *d)
>  {
> -	struct irq_chip *chip = irq_data_get_irq_chip(d);
> +	unsigned int hw_irq = (unsigned int)irqd_to_hwirq(d);
>  	int rc;
>  	u32 target;
>  	u8 prio;
>  	u32 lirq;
>  
> -	if (!is_xive_irq(chip))
> -		return;
> -
>  	rc = xive_ops->get_irq_config(hw_irq, &target, &prio, &lirq);
>  	if (rc) {
>  		seq_printf(m, "IRQ 0x%08x : no config rc=%d\n", hw_irq, rc);
> @@ -1627,16 +1624,9 @@ static int xive_core_debug_show(struct seq_file *m, void *private)
>  
>  	for_each_irq_desc(i, desc) {
>  		struct irq_data *d = irq_desc_get_irq_data(desc);
> -		unsigned int hw_irq;
> -
> -		if (!d)
> -			continue;
> -
> -		hw_irq = (unsigned int)irqd_to_hwirq(d);
>  
> -		/* IPIs are special (HW number 0) */
> -		if (hw_irq != XIVE_IPI_HW_IRQ)
> -			xive_debug_show_irq(m, hw_irq, d);
> +		if (d->domain == xive_irq_domain)
> +			xive_debug_show_irq(m, d);
>  	}
>  	return 0;
>  }